Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Problem mit PHP und MySQL-Datenbank

Empfohlene Antworten

Veröffentlicht

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>"

?>

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\" />

 <?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.

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

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.