pahe: MySQL Daten Bearbeiten - Speichern Funktioniert nicht

Hallo,

Ich habe ein Script geschrieben das mir aus einer MySQL Datenbank Daten auslist, die ich dann entweder Bearbeiten(Updaten) kann oder komplett löschen kann.

Aus der Tabelle "galerie" die Datensätze auslesen und anzeigen!
(Zeile: 79-130)
Das Funktioniert!

Den kompletten eintrag aus der Tabelle "galerie" löschen
(Zeile: 10-18)
Funktioniert auch!

In der, aus der Tabelle erstellten liste ALLER einträge, auf Bearbeiten zuklicken und somit den ausgewählten eintrag an das Bearbeitung Formular zuschicken Funktioniert auch.

(Link zum Bearbeiten: Zeile: 124-126)
(Das Bearbeitungsformular: Zeile: (37-78)

Im Bearbeitungs Formular wird Korrekt der ausgewählte eintrag angezeigt.

Wenn ich diesen nun Bearbeite und auf Abschicken klicke, passiert nichts.
Der eintrag wird einfach nicht geändert bzw in die Datenbank geschrieben.

Der Teil der es in die Datenbank schreiben soll findet ihr in (Zeile: 19-36)

Ich vermute mal da sonst alles Funktioniert das der Fehler in Zeile 19-36 liegt. Aber ich finde beim besten willen keinen!
Ich habe auch schon ein echo eingebaut (Zeile 35) um zusehen was er an MySql sendet:
UPDATE galerie SET datum = '2010-10-16', linktext = 'Elektro Plusddd', kategorie = '', beschreibung = 'Elektro Firma ddd', WHERE ID='2'

Aber ich sehe in der Variablen $sql keinen Fehler.

Ich hoffe ihr könnt mir helfen, oder mir einen Tipp geben wo das Problem liegen könnte. Denn alleine schaffe ich das nicht!

Vielen Vielen Dank für eure Hilfe , pascal ;)

Der .php code:

<html>  
<head>  
<title>Bearbeiten der Galerie Inhalte</title>  
</head>  
<body>  
  <div algin="center">
<?php  
  require 'connect.php';  
  
  // Löschen des Datensatzes  
  if($_GET['sent']== 1 AND $_GET['ID'])  
  {  
  $sql = "DELETE ";  
  $sql.=" FROM ".$tabellenname;  
  $sql.=" WHERE ID=";  
  $sql.=$_GET['ID'];  
  @mysql_query($sql, $link);  
  }  
  /*  
  Speichern der neuen Werte, nachdem das Formular zum Bearbeiten  
  abgeschickt wurde  
  */  
  
  if($_POST['sent']==2 AND $_POST['ID'])  
  {  
  $sql = "UPDATE ".$tabellenname;  
  $sql.=" SET ";  
  $sql.=" datum = '".$_POST['datum']."', ";  
  $sql.=" linktext = '".$_POST['linktext']."', ";  
  $sql.=" kategorie = '".$_POST['kategorie']."', ";  
  $sql.=" beschreibung = '".$_POST['beschreibung']."', ";  
  $sql.=" WHERE ID='";  
  $sql.=$_POST['ID']."'";  
  @mysql_query($sql, $link);  
  echo "sql:".$sql;  
  }  
  //Anzeigen des Formulars zum Bearbeiten eines Datensatzes  
  if($_GET['sent']==3 AND $_GET['ID'])  
  {  
  $sql = "SELECT ";  
  $sql.=" ID, datum, linktext, kategorie, beschreibung FROM ".$tabellenname;  
  $sql.=" WHERE ID=";  
  $sql.=$_GET['ID'];  
  $result=@mysql_query($sql, $link);  
  ?>
  <h2>Bearbeiten eines Datensatzes</h2>  
  <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">  
  <input type="hidden" name="sent" value="2">  
  <input type="hidden" name="ID" value="<?php echo mysql_result($result,0, 'ID'); ?>">  
  
  <p>Der Text für den Hyperlink</p>  
  <input type="text" name="linktext" size="50" value="<?php echo mysql_result($result,0, 'linktext'); ?>">  
  
  <p>Kurzbeschreibung</p>  
  <input type="text" name="beschreibung" size="50" value="<?php echo mysql_result($result,0, 'beschreibung'); ?>">  
  
  <p>Datum</p>  
  <input type="text" name="datum" size="10" value="<?php echo mysql_result($result,0, 'datum') ?>">  
  
  <p>Kategorie</p>  
  <select name="kategorie" size="3">  
  <option <?php if(mysql_result($result,0, 'kategorie')=='Digital ART'){echo " selected ";}?>>Digital ART  
  <option <?php if(mysql_result($result,0, 'kategorie')=='Web Interface'){echo " selected ";}?>>Web Interface  
  <option <?php if(mysql_result($result,0, 'kategorie')=='Logo Design'){echo " selected ";}?>>Logo Design  
  <option <?php if(mysql_result($result,0, 'kategorie')=='Photographie'){echo " selected ";}?>>Photographie  
  <option <?php if(mysql_result($result,0, 'kategorie')=='Artisan Crafts'){echo " selected ";}?>>Artisan Crafts  
  <option <?php if(mysql_result($result,0, 'kategorie')=='Bootscreen'){echo " selected ";}?>>Bootscreen  
  <option <?php if(mysql_result($result,0, 'kategorie')=='Business Card'){echo " selected ";}?>>Business Card  
  <option <?php if(mysql_result($result,0, 'kategorie')=='Hand Drawing'){echo " selected ";}?>>Hand Drawing  
  <option <?php if(mysql_result($result,0, 'kategorie')=='Model Photo'){echo " selected ";}?>>Model Photo  
  <option <?php if(mysql_result($result,0, 'kategorie')=='Traditional Art'){echo " selected ";}?>>Traditional Art  
  <option <?php if(mysql_result($result,0, 'kategorie')=='CD Cover'){echo " selected ";}?>>CD Cover  
  </select><br><br>  
  <input type="submit"><input type="Reset" value="Zurücksetzen">  
  </form>
  <?php  
  }  
  //Ausgeben der Liste  
  $sql = "SELECT ";  
  $sql.=" ID, datum, linktext, kategorie, beschreibung, thumb_link FROM  
  ".$tabellenname;  
  if($_GET['sort']=="kategorie" OR $_GET['sort']=="datum" OR $_GET['sort']=="ID")  
  {  
  $sql.=" ORDER BY ";  
  $sql.=$_GET['sort'];  
  $sql.=" DESC ";  
  }  
  $result=@mysql_query($sql, $link);  
  if(mysql_num_rows($result)>0)  
  {  
  echo "<h2>Die bisher hochgeladenen Dateien</h2>";  
  echo "<h3>Sortierung</h3>";  
  echo "<a href=\"".$_SERVER['PHP_SELF']."?sort=kategorie\">Kategorie</a> - - ";  
  echo "<a href=\"".$_SERVER['PHP_SELF']."?sort=datum\">Datum</a> - - ";  
  echo "<a href=\"".$_SERVER['PHP_SELF']."?sort=ID\">ID-Nummer</a>";  
  
  for($i=0;$i<mysql_num_rows($result);$i++)  
  {  
  echo "<hr width=\"400\">";  
  echo "<table border=\"1\" width=\"400\">";  
  echo "<tr><td colspan=\"2\">";  
  echo "<img src=\"../";  
  echo mysql_result($result,$i, 'thumb_link');  
  echo "\"></td></tr>";  
  echo "<tr><td>";  
  echo mysql_result($result,$i, 'kategorie');  
  echo "</td><td algin=\"right\">";  
  echo mysql_result($result,$i, 'datum');  
  echo "</td></tr>";  
  echo "<tr><td colspan=\"2\">";  
  echo "Title: ";  
  echo mysql_result($result,$i, 'linktext');  
  echo "</td></tr>";  
  echo "<tr><td colspan=\"2\">";  
  echo mysql_result($result,$i, 'beschreibung');  
  echo "</td></tr>";  
  //Neue Zeile mit den Links zum Aufrufen des Bearbeitungsformulars und zum Löschen des Datensatzes  
  echo "<tr><td>";  
  echo "<a href=\"".$_SERVER['PHP_SELF']."?sent=1&ID=";  
  echo mysql_result($result,$i, 'ID');  
  echo "\">Löschen</a>";  
  echo "</td><td algin=\"right\">";  
  echo "<a href=\"".$_SERVER['PHP_SELF']."?sent=3&ID=";  
  echo mysql_result($result,$i, 'ID');  
  echo "\">Bearbeiten</a>";  
  echo "</td></tr>";  
  echo "</table>";  
  }  
  }  
  else  
  {  
  echo "<h2>Es liegt keine Einträge in der Datenbank vor </h2>";  
  }  
  ?>
  </div>  
</body>  
</html>
  1. Hi,

    Ich vermute mal da sonst alles Funktioniert das der Fehler in Zeile 19-36 liegt. Aber ich finde beim besten willen keinen!
    Ich habe auch schon ein echo eingebaut (Zeile 35) um zusehen was er an MySql sendet:
    UPDATE galerie SET datum = '2010-10-16', linktext = 'Elektro Plusddd', kategorie = '', beschreibung = 'Elektro Firma ddd', WHERE ID='2'

    Aber ich sehe in der Variablen $sql keinen Fehler.

    Frag die Datenbank, was sie zu bemängeln hat - dafür gibt es mysql_error.

    Benutze kein @ zur Unterdrückung von Meldungen, und werte die Rückgabewerte kritischer Funktionen vernünftig aus.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Hi,

      Ich vermute mal da sonst alles Funktioniert das der Fehler in Zeile 19-36 liegt. Aber ich finde beim besten willen keinen!
      Ich habe auch schon ein echo eingebaut (Zeile 35) um zusehen was er an MySql sendet:
      UPDATE galerie SET datum = '2010-10-16', linktext = 'Elektro Plusddd', kategorie = '', beschreibung = 'Elektro Firma ddd', WHERE ID='2'

      Aber ich sehe in der Variablen $sql keinen Fehler.

      Frag die Datenbank, was sie zu bemängeln hat - dafür gibt es mysql_error.

      Benutze kein @ zur Unterdrückung von Meldungen, und werte die Rückgabewerte kritischer Funktionen vernünftig aus.

      MfG ChrisB

      Hey, erstmal vielen dank für die schnelle Antwort. Das mit dem @ werde ich in zukunft befolgen.

      Habe die Funktion mysql_error() in die Zeile: (36) eingefügt.

      Ich erhalte nun folgende nachricht!
      "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID=2' at line 1"

      thx!

      1. Hi,

        bitte keine Vollzitate!

        Habe die Funktion mysql_error() in die Zeile: (36) eingefügt.

        Ich erhalte nun folgende nachricht!
        "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID=2' at line 1"

        Gut - dann schaust du dir jetzt noch mal genau an, was kurz vor diesem WHERE in deiner Query steht.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. Moin!

    »   $sql.=" beschreibung = '".$_POST['beschreibung']."', ";  
    
    >   $sql.=" WHERE ID='";
    
    

    Für geübte ein Blick: Da ist ein Komma zu viel. Das vor dem where.
    Für das Debuggen ist es immer hilfreich sich die SQL-Anweisung ausgeben zu lassen.

    Ein echo("<pre>$sql</pre>"); wirkt oft Wunder.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. Hey, vielen dank! Euch beiden!!!

      Es Funktioniert =)! Was so ein kleiner Fehler ausmachen kann ;)

      Wünsch euch beiden noch einen schönen Tag!

      <3 Selfhtml!