Problem bei Datenbankupdate

laempisch

Erfahrenes Mitglied
Hallo,

ich versuche eine Funktion bereitzustellen in der Registrierte User die Möglichkeit haben Ihre Benutzerdaten zu ändern.

Das Auslesen der Daten funktioniert super. beim Speichern bekomme ich leider folgende Meldung:

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` =' at line 14

Hier der php Teil der das ganze verbockt :-)

PHP:
$sql = "SELECT * FROM benutzerdaten WHERE Id = \"{$_SESSION['user_Id']}\""; 
$res = mysql_query($sql) OR die(mysql_error());    
$userdaten = mysql_fetch_assoc(mysql_query('SELECT * FROM `benutzerdaten` WHERE `Id`='.$_SESSION['user_Id'])); 

if ($_POST['submit'])

Wo mache ich hier einen Fehler?


Vielen Dank,

Viele Grüße,

Daniel Limbach
 
Versuchs mal so:
PHP:
$sql = "SELECT * FROM benutzerdaten WHERE Id = '".$_SESSION['user_Id']."'"; 
$res = mysql_query($sql) OR die(mysql_error());    
$userdaten = mysql_fetch_array($res));

echo "Spalte1: ".$userdaten[0]. " Spalte2: ".$userdaten[1];

if ($_POST['submit']) {
   // Funktionen beim Absenden des Forms
}
So sollte es eigentlich gehen. Ist aber ungetestet.
 
hi,

versuch mal folgendes:

PHP:
$sql = "SELECT * FROM benutzerdaten WHERE Id = '".$_SESSION[user_Id]."'";


EDIT: SIM4000 war ein bissl schneller :-)
 
Danke für die scnhelle Antwort.

Bekomme aber den gleichen Fehler.

Liegt es evtl an dem Teil darunter?

PHP:
$sql = "SELECT * FROM benutzerdaten WHERE Id = '".$_SESSION[user_Id]."'"; 
$res = mysql_query($sql) OR die(mysql_error());    
$userdaten = mysql_fetch_assoc(mysql_query('SELECT * FROM `benutzerdaten` WHERE `Id`='.$_SESSION['user_Id'])); 

if ($_POST['submit']) 
{ 
$sql = 'UPDATE `benutzerdaten` SET  
`vorname` = \''.mysql_real_escape_string($_POST['vorname']).'\',  
`name` = \''.mysql_real_escape_string($_POST['name']).'\',  
`firma` = \''.mysql_real_escape_string($_POST['firma']).'\', 
`strasse` = \''.mysql_real_escape_string($_POST['strasse']).'\',  
`plz` = \''.mysql_real_escape_string($_POST['plz']).'\',  
`ort` = \''.mysql_real_escape_string($_POST['ort']).'\',  
`tel` = \''.mysql_real_escape_string($_POST['tel']).'\',  
`email` = \''.mysql_real_escape_string($_POST['email']).'\',  
`fax` = \''.mysql_real_escape_string($_POST['fax']).'\',  
`web` = \''.mysql_real_escape_string($_POST['web']).'\',  
`nickname` = \''.mysql_real_escape_string($_POST['nickname']).'\',  
`kennwort` = \''.mysql_real_escape_string(md5($_POST['kennwort'])).'\',  
WHERE `Id` = '.$_SESSION['user_id']; 

mysql_query($sql) OR die(mysql_error());   
echo 'Die Einstellungen wurden übernommen!'; 
}

Viele Grüße,

laempisch
 
Liegt es evtl an dem Teil darunter?
Ja. :)

Machs mal so:
PHP:
$sql = "SELECT * FROM benutzerdaten WHERE Id = '".$_SESSION[user_Id]."'"; 
$res = mysql_query($sql) OR die(mysql_error());    
$userdaten = mysql_fetch_assoc(mysql_query('SELECT * FROM `benutzerdaten` WHERE `Id`='.$_SESSION['user_Id'])); 

if ($_POST['submit']) 
{ 
$sql = "UPDATE `benutzerdaten` SET  
`vorname` = '".mysql_real_escape_string($_POST['vorname'])."',
`name` = '".mysql_real_escape_string($_POST['name'])."',  
`firma` = '".mysql_real_escape_string($_POST['firma'])."', 
`strasse` = '".mysql_real_escape_string($_POST['strasse'])."',  
`plz` = '".mysql_real_escape_string($_POST['plz'])."',  
`ort` = '".mysql_real_escape_string($_POST['ort'])."',  
`tel` = '".mysql_real_escape_string($_POST['tel'])."',  
`email` = '".mysql_real_escape_string($_POST['email'])."',  
`fax` = '".mysql_real_escape_string($_POST['fax'])."',  
`web` = '".mysql_real_escape_string($_POST['web'])."',  
`nickname` = '".mysql_real_escape_string($_POST['nickname'])."',  
`kennwort` = '".mysql_real_escape_string(md5($_POST['kennwort']))."'
WHERE `Id` = '".$_SESSION['user_id']."'"; 

$res = mysql_query($sql) OR die(mysql_error());   
if($res) {
   echo 'Die Einstellungen wurden übernommen!'; 
} else {
   echo 'Fehler!'; 
}
}
 
Zuletzt bearbeitet:
Oh je,

habe den Fehler gefunden.

das "id" war klein geschrieben und musste "Id" geschrieben werden.

Danke für Eure Hilfe.

laempisch
 
Zurück