[PHP] Fehlermeldung in Script

concept

Member
ID: 11843
L
21 Februar 2007
12
1
Hallo!

Ich habe mir verschiedene Tutorials durchgelesen, weil ich mir eine Linkliste bauen möchte.
Soweit - sogut ... die Linkliste läuft, jedoch gibt es ein Problem im Admin Bereich.

Ich habe eine admin_links.php mit folgendem Inhalt
PHP:
<html>
<body>
Wählen Sie aus, welcher Datensatz gelöscht werden soll:<p>
<form action = "admin_links_del.php" method = "post">
<?php


$db_host = 'localhost';     // Datenbankserver (z.b localhost)
$db_user = 'root';    // Benutzername
$db_pass = '***';         // Passwort
$db_name = 'diverses';    // Datenbankname


$db = @mysql_connect($db_host, $db_user, $db_pass);
if(!$db) {echo "Der DB Server ist im Moment leider nicht erreichbar!";}



$res = mysql_db_query("diverses",
      "select * from Linkliste");
   $num = mysql_num_rows($res);

   // Tabellenbeginn
   echo "<table border>";

   // Überschrift
   echo "<tr> <td>Auswahl</td> <td>ID</td>";
   echo "<td>Name</td> <td>Text</td>";
   echo "<td>Link</td> <td>eMail</td> </tr>";

   for ($i=0; $i<$num; $i++)
   {
      $id = mysql_result($res, $i, "ID");
      $na = mysql_result($res, $i, "Name");
      $te = mysql_result($res, $i, "Text");
      $li = mysql_result($res, $i, "Link");
      $em = mysql_result($res, $i, "eMail");

      // Tabellenzeile mit -zellen
      echo "<tr> <td><input type='radio' name='auswahl' value='$id'></td>";
      echo "<td>$id</td> <td>$na</td>";
      echo "<td>$te</td> <td>$li</td> <td>$em</td> </tr>";
   }

   // Tabellenende
   echo "</table>";

   mysql_close($db);
?>
   <p>
   <input type="submit" value="Datensatz löschen">
</form>
</body>
</html>
Dies scheint soweit in Ordnung zu sein.
Nun die admin_links_del.php
PHP:
<?php

$db_host = 'localhost';     // Datenbankserver (z.b localhost)
$db_user = 'root';    // Benutzername
$db_pass = '***';         // Passwort
$db_name = 'diverses';    // Datenbankname

if ($auswahl)
{
   $db = mysql_connect($db_host, $db_user, $db_pass);
   $sqlab = "delete from Linkliste where";
   $sqlab .= " ID = '$auswahl'";

   mysql_db_query("diverses", $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="admin_links.php">Auswahl</a>
Ich bekomme immer die Meldung:
Es wurde kein Datensatz ausgewählt

Vielleicht weiß einer von Euch einen Rat was falsch ist, oder wie ich es besser machen kann - hab noch nicht viel Ahnung davon. :pray:

Vielen Dank schon mal
 
Zuletzt bearbeitet von einem Moderator:
Das klingt als ob das Script mit register_globals=on geschrieben wurde und die aber (glücklicherweise) von deinem Server nicht mehr unterstützt werden.

Ändere einfach mal in der zweiten Datei
PHP:
if ($auswahl)
in
PHP:
if (isset($_POST['auswahl']))

PS:
:arrow: Willkommen im Forum
:arrow: Sowas kann auch ins normale Programmieren-Forum (@tH ;) )
:arrow: Schön, dass du nicht nur einfach den Text hier reinkopierst, sondern gleich die Code-Tags verwendest, mit den PHP-Tags wäre es aber gleich bunt = besser
 
Besten Dank - das hat soweit funktioniert.
Jetzt bekomme ich jedoch die Meldung

Der Datensatz wurde nicht gelöscht

Seht Ihr da evtl. noch einen anderen Fehler - sehe den Wald vor Bäumen nicht mehr :roll: :roll:
 
es gibt keine variable $auswahl die heißt $_POST['auswahl']

btw: schon mal include gehört? damit kannst du die db verbindung in eine datei packen und kannst im nachhien auch mal die zugangsdaten ändern ohne 58 datei ändern zu müssen.
 
1. Das es Zero sagt außerdem ist eine Zahl kein String und das ID Feld nehme ich mal an ist eine Zahl, wenn dem so ist schreibe lieber
PHP:
$sqlab = "DELETE FROM `Linkliste` WHERE `ID` = ".(int)$_POST['auswahl'];

Ps die Ticks kannst auch weglassen
 
Hey - SUPER - Vielen Dank, das war genau ins schwarze getroffen.
Jetzt läuft es so wie es soll.

Ich danke euch allen für die schnelle Hilfe !!!:kiss: