MySQL-DB Einträge updaten

Hi @ all,

ich will mit PHP MySQL-Einträge in ner DB updaten. Hier ist der code, den ich dafür andachte:

PHP:
		$id = $_SESSION['id'];
		$query_update = "UPDATE LOW_PRIORITY users SET nickname=".$_POST['nickname'].", surname=".$_POST['surname'].", name=".$_POST['name'].", password=".$_POST['password'].", nickname=".$_POST['school'].", nickname=".$_POST['school_short'].", mail=".$_POST['mail'].", mobile=".$_POST['mobile'].", icq=".$_POST['icq']." WHERE id = ".$id."";
	
		// Erfolgreiche Änderung ANFANG
		if(!isset($error)) {
					$password = md5($_POST['password']);
if($insert = @mysql_query($query_update) ) {
						session_destroy();
						session_register("id", "surname", "nickname", "name",  "school_short", "school", "mail", "mobile", "icq");
						echo '<p align="center">Erfolgreich geändert!<br><br><a href="sichere_seite_'.$result['school_short'].'.php">Zu deiner Schulseite</a></p>';
					}	
					else {
						echo '<p align="center">Beim Ändern trat leider ein Fehler auf!<br><br><a href="neu.php">Zurück</a></p>';
					}
		}

Nur irgendwie gibts da Probleme. Er springt immer sofort zum else-Teil... Ist ein Fehler im Code oder muss ich nach logischen Fehlern suchen?

Fragt bei Fragen

Christoph
 
Der Eintrag zum Ändern der Spalte nickname erscheint zweimal. Ist das Absicht?
 
Ok, schön dumm, wenn man die Kopieren-Funktion nutzt und die Einträge dann nicht entsprechend anpasst... (siehe hier: nickname=".$_POST['school'].", nickname=".$_POST['school_short'].")

Aber ich habs mit dem geänderten auch mal ausprobiert, funktioniert trotzdem nicht...

christoph
 
Versuch's mal wie folgt:
PHP:
<?php
  [...]
  $query_update = "
UPDATE LOW_PRIORITY
        `users`
  SET
        `nickname` = '".$_POST['nickname']."',
        `surname` = '".$_POST['surname']."',
        `name` = '".$_POST['name']."',
        `password` = '".$_POST['password']."',
        `nickname` = '".$_POST['school']."',
        `nickname` = '".$_POST['school_short']."',
        `mail` = '".$_POST['mail']."',
        `mobile` = '".$_POST['mobile']."',
        `icq` = '".$_POST['icq']."'
  WHERE
        `id` = ".$id."
";
  [...]
?>
 
So, jetzt hab ich einfach mal mysql_error() ( ;) ) benutzt und kam acuh auf die Syntax- und DB-fehler. Er gibt mir jetzt auch ein erfolgreich geändert zurück, nur wirklich updaten tut ers dann aber doch nicht...

PHP:
$id = $_SESSION['id'];
		$query_update = " 
			UPDATE 
					`users` 
			  SET 
					`surname` = '".$_POST['surname']."', 
					`name` = '".$_POST['name']."',
					`nickname` = '".$_POST['nickname']."', 					 
					`password` = '".$_POST['password']."', 
					`school` = '".$_POST['school']."', 
					`school_short` = '".$_POST['school_short']."', 
					`mail` = '".$_POST['mail']."', 
					`mobile` = '".$_POST['mobile']."', 
					`icq` = '".$_POST['icq']."' 
			  WHERE 
					`id` = '".$_SESSION['id']."' 
		"; 
			
		// Erfolgreiche Änderung ANFANG
		if(!isset($error)) {
					$password = md5($_POST['password']);
//					if($insert = @mysql_query($query_update) ) {
					if(mysql_query($query_update) ) {
						session_destroy();
						session_register("id", "surname", "nickname", "name",  "school_short", "school", "mail", "mobile", "icq");
						echo '<p align="center">Erfolgreich geändert!<br><br><a href="sichere_seite_'.$result['school_short'].'.php">Zu deiner Schulseite</a></p>';
					}	
					else {
						echo '<p align="center">Beim Ändern trat leider ein Fehler auf!<br><br>'.mysql_error().'<br><br><a href="profil_bearbeiten.php">Zurück</a></p>';
					}
		}
		// Erfolgreiche Änderung ENDE

Christoph
 
Wen die SQL-Syntax korrekt ist, aber dennoch kein Datensatz geändert wird, stimmt vielleicht die Bedingung in der Where-Klausel nicht. Lass Dir mal das SQL-Statement ausgeben und schau nach, ob da wirklich WHERE `id` = 'irgend ein wert' steht Und ob die ID, nach der eingeschränkt wird auch wirklich in der DB steht.

snuu
 
Zurück