Update Befehl funktioniert nicht, Hilfe!!

ssiersdorfer

Grünschnabel
hallo zusammen,

hier es der code
muss irgendwas faul sein


PHP:
  $db=mysql_connect("xxxxxxxx","xxxxxxxxx","xxxxxxxxx");
mysql_select_db("xxxxxxx", $db);
   if($update=="ja")
   {
      mysql_query("UPDATE gbook SET beitrag='$beitrag' FROM gbook WHERE datum='$datum' AND autor='$autor'", $db);
      if(mysql_affected_rows($db)==1)
      {
         echo "<font color=\"#00FF00\"><b>Eintrag wurde bearbeitet!</b></font><br><br>";
      }
      else
      {
         echo "<font color=\"#FF0000\"><b>Eintrag konnte nicht bearbeitet werden!</b></font><br><br>";
      }
   }
   $result=mysql_query("SELECT * FROM gbook ORDER BY datum DESC", $db);
   for($i=0; $i<mysql_num_rows($result); $i++)
   {
      $gaestebuch[$i]=mysql_fetch_object($result);
   }
   echo "<table border=\"0\">";
   for($i=0; $i<mysql_num_rows($result); $i++)
   {
      echo "<tr bgcolor='#cccccc'>",
           "<td><b>Eintrag von ",
           $gaestebuch[$i]->autor,
           " am ",
           substr($gaestebuch[$i]->datum, 8, 2),
           ".",
           substr($gaestebuch[$i]->datum, 5, 2),
           ".",
           substr($gaestebuch[$i]->datum, 0, 4),
           " ",
           substr($gaestebuch[$i]->datum, 10),
		   "</td>",
		   "<td>",
		   "<a href=\"update.php?login=1&update=ja&datum=",
           $gaestebuch[$i]->datum,
           "&autor=",
           $gaestebuch[$i]->autor,
           "\"></b>",
		   "<div align='right'><img src='http://www.zenmusic.de/Homepage/bilder/delete.gif' width='29' height='30' border='0'></a></td>",
           "</tr>",
		   "<tr>",
           "<td>",
		   "<textarea name='beitrag' cols='70' rows='4'>",
		   $gaestebuch[$i]->beitrag,
		   "</textarea>",
           "<br><br></td>",
           "</tr>";
           
		 
   }
   echo "</table><br><br>";

muss doch irgendwie gehn
gruss sven
 
Zuletzt bearbeitet:
Also erstmal:
Halte Dich bitte an Gross- und Kleinschreibung, und ansonsten kannst Du auch mal Dein Deutsch verbessern

Denn
ssiersdorfer hat gesagt.:
hier es der code
muss irgendwas faul sein
ist nicht gerade das was man so in der Schule lernt.

Dann moechte ich Dich noch auf die [ php ]-Tags hier hinweisen, die dafuer sorgen, dass Code leichter lesbar ist.
Setz Deinen PHP-Code einfach in [ php ]PHP-Code[ /php] (natuerlich die Leerzeichen loeschen) und es sieht ungefaehr so aus:
PHP:
<?php
echo "Hallo Welt!";
?>

Und auch Fehlermeldungen moegen wir hier unbeschreiblich gern. ;)

Nun zu Deinem Problem.

Diese Zeile:
PHP:
mysql_query("UPDATE gbook SET beitrag='$beitrag' FROM gbook WHERE datum='$datum' AND autor='$autor'", $db);
kann so nicht gehen, denn bei UPDATE wird kein FROM genutzt, die Tabelle gibst Du ja schon weiter vorne an, direkt nach UPDATE.

Also probier es einfach mal so:
PHP:
mysql_query("UPDATE gbook SET beitrag='$beitrag' WHERE datum='$datum' AND autor='$autor'", $db);
 
Dann steht scheinbar nichts in $beitrag.
Gib die Variable mal aus.
Am besten so:
PHP:
echo '$beitrag="'.$beitrag.'"';
So bekommst, wenn $beitrag leer ist zumindest die "" zu sehen und weisst somit definitiv, dass $beitrag leer ist.
 
Ja,
Dann zeigt er mir nur "" an. Aber die Variable beitrag ist ein Textfeld ind den ich ja was eingebe. Warum übernimmt er das nicht?
 
Vermutlich klappt das nicht, weil register globals deaktiviert ist und Du nicht mit einem der superglobalen Arrays $_GET, $_POST oder $_REQUEST arbeitest.
Dazu hast Du vermutlich Dein Errorlevel runter geschraubt, so dass Du keine Fehlermeldungen erhältst.

Gruß hpvw

PS: Bitte nutze die Code Tags, [ php ]code[ /php ] für PHP-Quelltexte, [ html ]code[ /html ] für HTML-Quelltexte und [ code ]code[ /code ] für sonstige Quelltexte, natürlich ohne die Leerzeichen. Das macht die Quelltexte übersichtlicher. Für kurze Code-Teile im Fließtext (z.B. Variablen- oder Funktionsnamen) kannst Du [ mono ]kurzer Code-Fetzen[ /mono ] verwenden.

PPS: Man kann die Beiträge auch editieren.
 
Eigentlich ist das im Handbuch recht gut beschrieben.
Statt $beitrag zum Auslesen von Formulardaten zu verwenden, mußt Du das der im Formular angegeben method entsprechende superglobale Array mit entsprechendem Array-Index verwenden, zum Beispiel $_POST['beitrag'].

Gruß hpvw
 
Es word überhaupt kein Formular method verwendet. Es sit einfach nur ein normales Textfeld ohne Formular Tag.
Es soll einfach nur der Text aus dem Textfeld in die Variable beitrag schreiben ohne ein POST oder GET Befehl ausführen zu müssen, sonst müsste ich noch eine weitere PHP Datei erstellen

gruss sven
 
Wie willst Du die Daten vom Client zum Server kriegen, wenn Du kein Formular absendest?
Du könntest außer einem Formular noch einen Link verwenden (was der Get-Methode entsprechen würde), aber ohne die Daten zu übermitteln wirst Du diese nie auf dem Server auslesen können. Das Formular könnte auch auf sich selbst verweisen und Du müßtest keine neue Datei anlegen.

Gruß hpvw
 

Neue Beiträge

Zurück