Datensatz löschen Problem

Mew

Erfahrenes Mitglied
Hallo liebe Gemeinde,

ich habe folgende Scripts:

members.php

PHP:
<form action = "delete.php" method = "post"><?php
   require("inc/config.php");
 
   $res = mysql_db_query("usr_web477_1", "select * from benutzerdaten");
   $num = mysql_num_rows($res);

echo "<table class=\"table\"><tr><td><p><u>Auswahl</u></p></td><td><p><u>BenutzerID</u></p></td><td><p><u>Nickname</u></p></td><td><p><u>Email</u</p></td><td><p><u>Vorname</u></p></td><td><p><u>Nachname</u</p></td><td><p><u>Rang</u</p></td></tr>";
	
   for ($i=0; $i<$num; $i++)
   {
   		
      $id = mysql_result($res, $i, "ID");
      $ni = parse(mysql_result($res, $i, "Nickname"));
      $vn = parse(mysql_result($res, $i, "Vorname"));
      $nn = parse(mysql_result($res, $i, "Nachname"));
	  $ra = parse(mysql_result($res, $i, "Rang"));
	  $em = parse(mysql_result($res, $i, "Email"));
	  
	  echo "<tr><td><input type='radio' name='auswahl' value='$id'></td><td><p>$id</p></td><td><p>$ni</p></td><td><p>$em</p></td><td><p>$vn</p></td><td><p>$nn</p></td><td><p>$ra</p></td></tr>"; 

   }
   	 echo "<tr><td><br><a href='javascript:history.back();'>Zurück</a></td><td><input type='submit' value='Löschen'></td></tr></table>";
   
   mysql_close($db);
?></form>

delete.php

PHP:
<?php
if ($_POST['auswahl'])
{
   include("inc/config.php");
   $sqlab = "delete * from benutzerdaten where";
   $sqlab .= " ID = '$auswahl'";

   mysql_db_query("usr_web477_1", $sqlab);

   $num = mysql_affected_rows();
   if ($num>0){
      echo "Der Datensatz wurde gelöscht<p>";}
   else{
      echo "Der Datensatz wurde nicht gelöscht<p>";}

   mysql_close($db);
}
else
   echo "Es wurde kein Datensatz ausgewählt<p>";

?>
Zurück zur <a href="uf17a.php">Auswahl</a>

Wenn ich auf abschicken gehe, wird der Benutzer aber nicht gelöscht. Da kommt dann die Fehlermeldung: Der Datensatz wurde nicht gelöscht

Kann mir jemand helfen? Vielen Dank
 
ehm^^

ich weis ja net aber veilleicht liegts ja daran dass du bei
PHP:
   $num = mysql_affected_rows();


keine $variable in die klammer geschrieben hast?


PHP:
   $sqlab = "delete * from benutzerdaten where";
   $sqlab .= " ID = '$auswahl'";

   mysql_db_query("usr_web477_1", $sqlab);

   $num = mysql_affected_rows($sqlab);

So gehts dann vielleicht...
 
Setz mal error_reporting(E_ALL); am Anfang deiner Scripte ein, versuch das mit dem löschen nochmal und poste dann den Error, wenn du ihn nicht auch schon so verstehst. Den gesamten Code setzt du zudem noch (nur zum testen) in <pre></pre>. Was sollen eigentlich die Absätze in der Tabelle? Das ist voll blödsinnig. Formatiere die Tabelle mit CSS oder lass sie auf den Standardeinstellungen.
MfG, Andy

//EDIT: Und wenn du die MySQLi-Extention auf deinem Server installiert hast, würde ich mir das mal anschauen. Das ist nämlich aufgrund seiner Objektorientierung deutlich besser.
 
Zuletzt bearbeitet von einem Moderator:
ehm^^

ich weis ja net aber veilleicht liegts ja daran dass du bei
PHP:
   $num = mysql_affected_rows();


keine $variable in die klammer geschrieben hast?


PHP:
   $sqlab = "delete * from benutzerdaten where";
   $sqlab .= " ID = '$auswahl'";

   mysql_db_query("usr_web477_1", $sqlab);

   $num = mysql_affected_rows($sqlab);

So gehts dann vielleicht...

klappt leider immer noch nicht ^^ @ Catull das ist so kompliziert, dass ich es nicht verstehe^^ aber trptzdem danke

sieht jemand anderes vvl. einen Felher?
 
Schreibe einfach ganz an den Anfang beider Dateien:
PHP:
<?php error_reporting(E_ALL); ?>
 
PHP:
$sqlab = "delete * from benutzerdaten where ID = '". $auswahl ."'";
mysql_db_query("usr_web477_1", $sqlab);
$num = mysql_affected_rows() or die(mysql_error());
var_dump($num);

Zu mysql_db_query noch ein kleiner Auszug aus dem Manual:
Anmerkung: Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden.

Folglich müsste das ganze dann so lauten:
PHP:
mysql_select_db('usr_web477_1');
// [...]
$sqlab = "delete * from benutzerdaten where ID = '". $auswahl ."'";
mysql_query($sqlab) or die(mysql_error());
$num = mysql_affected_rows() or die(mysql_error());
var_dump($num);
 
Vielleicht ist die Variable $auswahl leer, denn ich sehe keine Wert überweisung oder sonstiges :D
 
Zurück