Löschen eines Gästebucheintrags! Hilfe.

Der Fehler könnte an Deiner Auszeichnung liegen, versuchs einmal so:

PHP:
$loeschen = "DELETE 
                      FROM 
                              gb 
                      WHERE 
                              ID = '".$_GET['id']."' 
            ";
 
Hängt die id in der URI mitdran, wenn du auf den Link klickst?
Heißt das Feld in der Datenbank denn wirklich "id" kleingeschrieben?
Da würde ich mal nachschauen, denn alle anderen Einträge benutzen ja die Groß- und Kleinschreibung. (Auch wenn es imho nicht das Optimum für eine Datenbank ist)
 
Also, ID wird bei mir in der Datenbank groß geschrieben.
Müsste ich jetzt alle kleinen id in große umändern?
Wenn ich das tue ist die Fehlermeldung weg, aber es passiert nichts...also er löscht das nicht.

Ja und das id hängt beim Link mit dran...


So nochmal mit Großschreibung
(Weiß leider nicht ob das jetzt so richtig gemacht habe...)

administration.php
PHP:
<tr><td><?echo $row->ID; ?><a href = "loeschen.php?ID=<?echo $row->$ID; ?>" >Eintrag löschen</a> <br><br>


loeschen.php

PHP:
$loeschen = "DELETE
                                       FROM
                                                       gb
                                       WHERE
                                                       ID = ".$_GET['ID']."";
 
PHP:
<?php
       $db=mysql_connect("localhost","","") or die
      ("Keine Verbindung moeglich");
      mysql_select_db("gaestebuch")or die
      ("Die Datenbank existiert nicht");

     $loeschen = "DELETE FROM `gb` WHERE `ID` = '".intval($_GET['id'])."'";
     mysql_query($loeschen) or die(mysql_error());
?>

PHP:
<tr>
  <td>
    <? echo $row->ID; ?><a href = "loeschen.php?ID=<? echo $row->$ID; ?>">
    Eintrag löschen</a> 
    <br><br>

Probier es nochmal so...
Weiterhin bitte ich dich noch einmal, Zeilenumbrüche in deinem Source zu verwenden. Es sieht grausig aus und absolut unleserlich...

Die Funktion [phpf]intval[/phpf] ist zur Verhinderung von SQL Injektionen.
 
Sorry wegen den fehlenden Zeilenumbrüchen.
Habs jetzt so übernommen.
Die ID hängt immer noch am Link.
Soll das so sein?
Jedenfalls wird immer noch nichts gelöscht :(
Aber ich bedank mich an dieser Stelle für deine bisherige Ausdauer Flex :)
Hm...
 
Ja, die ID muss angehängt bleiben, da sonst das nächste Skript nicht weiß, welchen Eintrag es überhaupt löschen soll.

Zeig uns bitte noch einmal die gesamten Scripts, in ihrer jetzigen Form.

Ich brauch das um nochmal einen Überblick zu bekommen.

Und kein Problem ;)
 
Okay also:

administration.php

PHP:
<html>
	<head>
	<title>Gästebuch</title>
	</head>
<body bgcolor="lightblue">
<p align="center">
<font face="Verdana" size="6">
           <b> Gästebuch</b>  <br><br>
</font>

<font face="Verdana" size="2">
<br>
Login war erfolgreich!<br>
Sie können nun die Gästebucheinträge verwalten. <br>
<a href="gaestebuch.php">Zurück zum Gästebuch</a> <br><br>
<table border="0">
<?php

$db=mysql_connect("localhost","root","") or die
      ("Keine Verbindung moeglich");
      mysql_select_db("gaestebuch")or die
      ("Die Datenbank existiert nicht");
 $ergebnis=mysql_query("SELECT * FROM gb ORDER BY Datum DESC");
 
     while($row=mysql_fetch_object($ergebnis))
      {
?>
<font face="Verdana" size="1">
<tr><td>
Verfasst von <b><? echo $row->Name; ?></b> am  <? echo $row->Datum;?>
</td> </tr>
<tr><td>
<font face="Verdana" size="1">E-Mail: <?echo $row->Mail; ?></font>
</td></tr>
<tr><td>
<font face="Verdana" size="1">Homepage <?echo $row->Homepage; ?></font>
</td></tr> <br>
<tr><td>
<font face="Verdana" size="1"><?echo $row->Eintrag; ?>
</tr></td> <br>
<tr><td>
<? echo $row->ID; ?><a href = "loeschen.php?ID=<? echo $row->$ID; ?>">
    Eintrag löschen</a>
<br><br>
</td></tr></font>

       <?php
      }


?>



</table>

</form>
</font>
</body>
</html>


loeschen.php

PHP:
<?php
       $db=mysql_connect("localhost","","") or die
      ("Keine Verbindung moeglich");
      mysql_select_db("gaestebuch")or die
      ("Die Datenbank existiert nicht");

     $loeschen = "DELETE FROM gb WHERE ID = '".intval($_GET['id'])."'";
     mysql_query($loeschen) or die(mysql_error());
     

?>
 
PHP:
<?php
       $db=mysql_connect("localhost","","") or die
      ("Keine Verbindung moeglich");
      mysql_select_db("gaestebuch")or die
      ("Die Datenbank existiert nicht");

     $loeschen = "DELETE FROM gb WHERE ID = '".intval($_GET['ID'])."'";
     mysql_query($loeschen) or die(mysql_error());
     

?>

Da du beim Link ID großgeschrieben hast, musst du es auch hier tun.

Also $_GET['ID'] statt $_GET['id'].
 
Zurück