Veröffentlicht 23. März 200520 j Hallo, ich möchte mit PHP einen Datensatz aus einer MySQL-Datebank löschen. Der User gibt die ID an und der besagte Datensatz soll gelöscht werden. Allerdings läuft meine Schleife garnicht durch, die Ausgabe "Schleife nicht durchlaufen" (steht bei else) wird angezeigt... Weiß jemand was ich falsch gemacht habe ? Bin PHP-Neuling... <?php $db = mysql_connect("localhost", "root"); mysql_select_db("test",$db); if ($_REQUEST['submit'] == 'submited') { $passwd_check = "SELECT passwd from rbgb_admin WHERE id = 1"; $passwd_check_value = mysql_query($passwd_check); if ($passwd_check_value = $_REQUEST['password']); print "Schleife durchlaufen"; { mysql_free_result($passwd_check_value); $sql = "DELETE FROM rbgb_eintraege WHERE id = '".$_REQUEST['id']."'"; mysql_query($sql) OR die(mysql_error()); echo "<p>eintrag wurde gelöscht.</p>\n"; print "$_post"; } } else {print "Schleife nicht durchlaufen";} echo "<form action=\"admin.php\" method=\"POST\">" ."<input type=\"text\" value=\"id\" size=\"5\" maxlength=\"5\" />" ."<input type=\"password\" value=\"admin_passwd\" size=\"20\" />" ."<input type=\"submit\" value=\"submited\" />" ."</form>" ?>
23. März 200520 j if ($_REQUEST['submit'] == 'submited')Kann es vielleicht einfach sein, dass hier ein Rechtschreibfehler ist und da ein zweites 't' fehlt?
23. März 200520 j Kann es vielleicht einfach sein, dass hier ein Rechtschreibfehler ist und da ein zweites 't' fehlt? Nein, leider ist es das nicht, das "submited" bezieht sich auf die Value im Formular, da heißt es auch "submited" <input type=\"submit\" value=\"submited\" />
23. März 200520 j <?php $db = mysql_connect("localhost", "root"); mysql_select_db("test",$db); if(isset($_POST['submited'])) { $passwd_check = "SELECT passwd from rbgb_admin WHERE id = 1"; $passwd_check_value = mysql_query($passwd_check); if ($passwd_check_value == $_REQUEST['password']) print "Schleife durchlaufen"; { mysql_free_result($passwd_check_value); $sql = "DELETE FROM rbgb_eintraege WHERE id = '".$_REQUEST['id']."'"; mysql_query($sql) OR die(mysql_error()); echo "<p>eintrag wurde gelöscht.</p>\n"; print "$_post"; } } else {print "Schleife nicht durchlaufen";} echo "<form action=\"admin.php\" method=\"POST\">" ."<input type=\"text\" value=\"id\" size=\"5\" maxlength=\"5\" />" ."<input type=\"password\" value=\"admin_passwd\" size=\"20\" />" ."<input type=\"submit\" value=\"submited\" />" ."</form>" ?> Versuche es mal so. Falls dein Formular Variablen mit Post übergibt, nehme ich immer $_POST['variable']. Als du dann die Passwörter vergleichst solltest du == nehmen sonst weisst du ja die eine Variable der anderen zu. Ob es so funktioniert weiss ich nicht ganz, da ich mich schon ne weile nich mehr mit PHP beschäftzigt habe.
24. März 200520 j der Submit button im Forumluar muss "submit" heissen, wie du es in der If Bedinung abfragst... if ($_REQUEST['submit'] == 'submited') [/PHP] [code] echo "<form action=\"admin.php\" method=\"POST\">" ."<input type=\"text\" value=\"id\" size=\"5\" maxlength=\"5\" />" ."<input type=\"password\" value=\"admin_passwd\" size=\"20\" />" ."<input type=\"submit\" name =\"submit\" value=\"submited\" />" ."</form>" [/code] aber meiner Meinung nach wäre es schöner wenn du es so abfragst: [PHP] if ( !empty( $_REQUEST['submit']) && $_REQUEST['submit'] == 'submited') Gruß, Markus
24. März 200520 j Jetzt läuft es, habe einiges verändert.... <?php $db = mysql_connect("localhost", "root"); mysql_select_db("test",$db); if ($_REQUEST['submit'] == 'Loeschen') { $passwd_check = "SELECT passwd from rbgb_admin WHERE id = 1"; $passwd_check_value = mysql_query($passwd_check); $passwd_pw = mysql_fetch_row($passwd_check_value); $check_value = $passwd_pw[0]; if ($check_value == $_REQUEST['passwd']) { mysql_free_result($passwd_check_value); $sql = "DELETE FROM rbgb_eintraege WHERE id = '".$_REQUEST['id']."'"; mysql_query($sql) OR die(mysql_error()); echo "<p>Eintrag wurde gelöscht.</p>\n"; mysql_query("ALTER TABLE rbgb_eintraege AUTO_INCREMENT = 1"); } else {print "<font face=\"arial\">Das eingegebene Kennwort ist falsch.</font>";} } echo "<form action=\"admin.php\" method=\"POST\">" ."ID:<br><input type=\"text\" name=\"id\" value=\"\" size=\"5\" maxlength=\"5\" /><br>" ."Admin-Kennwort:<br><input type=\"password\" name=\"passwd\" value=\"\" size=\"20\" /><br>" ."<input type=\"submit\" name=\"submit\" value=\"Loeschen\" />" ."</form>"; ?> @kills: Danke, das mit dem Formular war der Fehler weswegen Die Variable nicht übergeben werden konnte...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.