..::rEnE::.. Geschrieben 23. März 2005 Geschrieben 23. März 2005 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>" ?>
perdian Geschrieben 23. März 2005 Geschrieben 23. März 2005 if ($_REQUEST['submit'] == 'submited')Kann es vielleicht einfach sein, dass hier ein Rechtschreibfehler ist und da ein zweites 't' fehlt?
..::rEnE::.. Geschrieben 23. März 2005 Autor Geschrieben 23. März 2005 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\" />
shannra666 Geschrieben 23. März 2005 Geschrieben 23. März 2005 <?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.
kills Geschrieben 24. März 2005 Geschrieben 24. März 2005 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
..::rEnE::.. Geschrieben 24. März 2005 Autor Geschrieben 24. März 2005 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...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden