Einfacher mySQL Update Befehl geht nicht?

Dann kann es also kein SQL Fehler sein? Ich sehe ja das die ID übergeben wird und er führt auch den entsprechendne Befehl "if ($_GET['do']=="edit") {" aus weil wenn ein Feld nicht richtig ausgefüllt wird, bekomme ich die Fehlermeldung. Ein SQL Fehler kann es also auch nciht sein.. nur was dann? :confused: Oh man ich verzweifel so langsam.. Im PhpMyAdmin geht es doch auch...
 
lass mal bei numerischen Feldern die ' ' weg. Bin mir grad ned sicher, aber bin ziemlich davon überzeugt das du diese ' ' nur bei Text/VarcharFeldern machen musst.
 
Ich hab als numerisches Feld nur "ID". Das andere ist alles varchar oder longtext. Wenn ich ID die ' ' weglasse bekomme ich eine SQL Fehlermeldung: 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 '' at line 1
 
Schonmal ein Fortschritt also... Jetzt rück mal das SQL-Statement ein, um die genaue Fehlerzeile zu finden...
PHP:
$update =	mysql_query("UPDATE
							`property`
						SET
							`header` = '$header',
							`hot` = '$hot',
							`objektid` = '$objektid',
							`preis1` = '$preis1',
							`preis2` = '$preis2',
							`preis3` = '$preis3',
							`text` = '$txt'
						WHERE
							`id` = ".intval($id)) or die(mysql_error());
 
Zuletzt bearbeitet:
Hy,

Ich würd ma überprüfen, ob in allen Variablen auch was drin steht. Wenn eine POST Variable z.B nicht übertragen wird, kann er es auch nicht in die Variable reinschreiben die dann im Update Befehl verwendet wird. Und in diesem Fall funktioniert der ganze Befehl nicht.

Also Überprüf dass ma indem du alle variablen Über echo ausgibst. Wenn dann eine Fehlt dann guckst du dir das Formular an und guckst ob du die namen der Felder überall richtig angegeben hast.

Und schreib den PHP Code mal lieber so:
PHP:
$update = mysql_query("UPDATE `property` SET `header` = '".$header."',`hot` = '".$hot."', `objektid` = '".$objektid."', `preis1` = '".$preis1."', `preis2` = '".$preis2."', `preis3` = '".$preis3."', `text` = '".$txt."' WHERE `id` = '".$id."'") or die(mysql_error());

Dass kanste beides ma ausprobieren.

LG Nino
 
Zuletzt bearbeitet:
Hallo Nino,
ich habe also in meinen Code geändert und einen echo Befehl eingebaut. Dieser wird mir auch richtig angezeigt, der Wert also korrekt übergeben nur leider nicht in der Datenbank gespeichert!

PHP:
if ($_GET['do']=="edit") {
    $txt = $_POST['text']; 
    if (isset($txt)) { 
	
		include "../config.php";
		
		$connect=mysql_connect("$host","$user","$pass");
		mysql_select_db("$db");
         
        $id = $_POST['id']; 
        $header = $_POST['header']; 
        $hot = $_POST['hot']; 
        $objektid = $_POST['objektid']; 
        $ort = $_POST['ort']; 
        $lage = $_POST['lage']; 
        $preis1 = $_POST['preis1']; 
        $preis2 = $_POST['preis2']; 
        $preis3 = $_POST['preis3']; 
        $bilder = $_POST['bilder']; 
        $url1 = $_POST['url1']; 
        $url2 = $_POST['url2']; 
        $url3 = $_POST['url3']; 
        $url4 = $_POST['url4']; 
        $url5 = $_POST['url5']; 
		
        echo $header;
        
		$ind=1; 
        $update = mysql_query("UPDATE `property` SET `header` = '".$header."',`hot` = '".$hot."',`objektid` = '".$objektid."', `preis1` = '".$preis1."', `preis2` = '".$preis2."',`preis3` = '".$preis3."', `text` = '".$txt."' WHERE `id` = '".$id."'") or die(mysql_error());   

        mysql_close($connect); 

         echo' 
         <tr> 
          <th colspan="4" bgcolor="#E2E2E2"></th> 
         </tr> 
         <tr> 
          <th colspan="4" bgcolor="#FFFFFF"><p><span style="color:#ff0000">Erfolgreich editiert!</span></p></th> 
         </tr>'; 
    }else { 
        echo' 
         <tr> 
          <th colspan="4" bgcolor="#E2E2E2"></th> 
         </tr> 
         <tr> 
          <th colspan="4" bgcolor="#FFFFFF"><p><span style="color:#ff0000">Änderung fehlgeschlagen! Bitte wiederholen!</span></p></th> 
         </tr>'; 
    } 
}
 
Hy ich meinte eig-lich:
PHP:
echo "<br>".$header."<br>".$hot."<br>".$objektid."<br>".$preis1."<br>".$preis2."<br>".$preis3."<br>".$txt."'

Dann siehst du gleich ob in den Variablen die die neuen WErte für die Datenbank enthalten auch was drin steht.
Wenn in der Ausgabe dann also eine Dieser Variablen nicht ausgegeben wird, hat diese auch keinen WErt. In diesem fall würde die ganze MYSQL Abfrage nich funktionieren.

Sry wenn ich mich unverständlich ausgedrückt hab

Nino
 
Probier mal den Codeteil aus (die Query), die ich in meinem vorigen Post geschrieben hab. Vielleicht kommen wir der Sache dann näher.
 
Man glaubt es kaum aber es hat funktioniert! @Nino: das war der richtige Weg! Ich glaub es lag überhaupt nicht an dem SQL Befehl (wobei ich eventuelle Fehler nicht ausschließen will! :rolleyes: ), es lag daran, dass irgendwie die ID nicht ausgegeben wurde. Ich habe alle Variablen die per POST übergeben werden sollten getestet und obwohl in der Adresszeile die ID ausgegeben wurde, hat er diese wohl nicht übernommen. Ich habe also ein extra hidden field gemacht und dort noch mal die ID mitgeschickt und siehe da: es hat funktioniert!

Wirklich vielen vielen Dank für ALLE Antworten. Habe wieder wirklich was dazugelernt! :)

Grüße
sugar
 
Zurück