Mysql Update funktoniert nicht

alex130

Erfahrenes Mitglied
Hi
Ich hab ein Problem und zwar bekomme ich beim update immer folgende Meldung:
Code:
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 8

Hier mein Code:
PHP:
<?php  

	include ("../configs/config.inc.php");
	session_start();

	$sql = "SELECT * FROM `".$mysql_usertable."` WHERE Id = \"{$_SESSION['user_id']}\"";
	$res = mysql_query($sql) OR die(mysql_error());   
	$query = mysql_fetch_assoc(mysql_query("SELECT * FROM `".$mysql_usertable."` WHERE `Id`= ".$_SESSION['user_id']));

	function convert_date($datum) { 
	$teile = explode(".", $datum);
	return $teile; }
 
	function convert_date2($datum) {
	$datum = explode("-", $datum);
	$datum1 = $datum[2].".".$datum[1].".".$datum[0];
	return $datum1;
	}
	
	$date = $_POST['birthday'];
	$datum = convert_date($date);
	$date2 = $datum[2]."-".$datum[1]."-".$datum[0];

	if ($_POST['submit'])
	{
		$sql2 = 'UPDATE `'.$mysql_usertable_config.'` SET 
		`username` = \''.mysql_real_escape_string($_POST['username']).'\', 
		`email` = \''.mysql_real_escape_string($_POST['email']).'\', 
		`birthday` = \''.mysql_real_escape_string($date2).'\', 
		`land` = \''.mysql_real_escape_string($_POST['land']).'\', 
		`city` = \''.mysql_real_escape_string($_POST['city']).'\',
		`zipcode` = \''.mysql_real_escape_string($_POST['zipcode']).'\',
		WHERE `Id`= '.$_SESSION['user_id'];

		//echo $sql;
		mysql_query($sql2) OR die(mysql_error());  
  		echo 'Die Einstellungen wurden übernommen!';
		header("Location: admin/change_config.php");
	}  
	else
	{

		echo '<form method="post" action=""> 
		<table width="580" border="0" align="center" />
		<tr>
		<td class="headline"><strong>Einstellungen</strong></td>
		</tr>

  		<tr>
    	<td class="table2" align="left">Benutzername:</td>
    	<td class="table2" align="left"><input type="text" name="username" value="'.$query['username'].'" size="30" /></td>
  		</tr>	  
  
  		<tr>
    	<td class="table1" align="left">Email Adresse:</td>
    	<td class="table1" align="left"><input type="text" name="email" value="'.$query['email'].'" size="30" /></td>
  		</tr>
		
   	 	<tr>
    	<td class="table1" align="left">Land:</td>
    	<td class="table1" align="left">
		';
		if($query['land'] == 'Deutschland') 
		{
			echo '<select name="land">
    		<option value="Deutschland" selected>Deutschland</option>
			<option value="Österreich">Österreich</option>
    		<option value="Schweiz">Schweiz</option>
			<option value="Anderes">Anderes</option>
    		</select>';
		}
		elseif($query['land'] == 'Österreich') 
		{
			echo '<select name="land">
    		<option value="Deutschland">Deutschland</option>
			<option value="Österreich" selected>Österreich</option>
    		<option value="Schweiz">Schweiz</option>
			<option value="Anderes">Anderes</option>
    		</select>';
		}
		elseif($query['land'] == 'Schweiz') 
		{
			echo '<select name="land">
    		<option value="Deutschland">Deutschland</option>
			<option value="Österreich">Österreich</option>
    		<option value="Schweiz" selected>Schweiz</option>
			<option value="Anderes">Anderes</option>
    		</select>';
		}
		elseif($query['land'] == 'Anderes') 
		{
			echo '<select name="land">
    		<option value="Deutschland">Deutschland</option>
			<option value="Österreich">Österreich</option>
    		<option value="Schweiz">Schweiz</option>
			<option value="Anderes" selected>Anderes</option>
    		</select>';
		}
		echo '
		</td>
  		</tr>
  
    	<tr>
   		<td class="table2" align="left">Stadt:</td>
    	<td class="table2" align="left"><input type="text" name="city" value="'.$query['city'].'" size="25" /></td>
  		</tr>
		
  		<tr>
   		<td class="table2" align="left">Postleitzahl:</td>
    	<td class="table2" align="left"><input type="text" name="zipcode" value="'.$query['zipcode'].'" size="5" /></td>
  		</tr>
		
    	<tr>
    	<td class="table1" align="left">Geburtstag:</td>
    	<td class="table1" align="left"><input type="text" name="birthday" value="'.convert_date2($query['birthday']).'" size="10" /></td>
  		</tr>
		
		<tr>
    	<td class="table1" align="left"></td>
    	<td class="table1" align="left"><input type="submit" name="submit" value="Speichern" /></td>
  		</tr>
		
		</table>

		</form>
		&nbsp;<br />';
		
	}
?>
 
Müsste das nicht so heißen:

PHP:
    $sql = "SELECT * FROM ".$mysql_usertable." WHERE Id = '".$_SESSION['user_id']."'";
    $res = mysql_query($sql) OR die(mysql_error());   
    $query = mysql_fetch_assoc(mysql_query("SELECT * FROM ".$mysql_usertable." WHERE Id = '".$_SESSION['user_id']."'"));
 
Zuletzt bearbeitet:
Hi
Thx das hab ich total übersehen, aber jetzt kommt noch folgender Fehler:
Code:
Unknown column 'Id' in 'where clause'
Ich hoffe du kannst mir nochmal helfen.
Thx
 
"Id" hast du groß geschrieben, während alles andere klein geschrieben ist.
Bist du sicher, dass die Spalte mit einem führenden Großbuchstaben beginnt?
 
hab jetzt das feld umbenannt in id, damit alls klein ist...
aber ich finde den fehler einfach nicht
 
Hast du denn jetzt bei allen Queries die ID kleingeschrieben?

Und was ist das hier?

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

Der Abschnitt macht irgendwie keinen Sinn...

PHP:
$sql = "SELECT * FROM `".$mysql_usertable."` WHERE id ='".$_SESSION['user_id']."'";
$res = mysql_query($sql) OR die(mysql_error());
$query = mysql_fetch_assoc($res);
Das würde eher Sinn machen.
 
Hi
Ja ich habe es überall übernommen.
Stimmt dein Code macht mehr Sinn ^^, aber es funktoniert immer noch nicht, ich weiß einfach nicht mehr weiter.
 
Zurück