Mit user_id von DB arbeiten ?

Code46

Erfahrenes Mitglied
Hallo liebes Forum,

ich habe eine Webseite mit PHP erstellt ,bin sehr neu in darin, wo ich mein loging bereich habe. Alles funtioniert soweit sogut.
Nun im User bereich will ich etwas posten, will aber mit dem user_id arbeiten. Wie und Wo kann ich dies übergeben ?
Ich habe einmal ein login.php, wenn hier richtig einglogt wurde werde ich auf die myaccount.php weitergeleitet. Hier habe ich ein Bereich wie postItem.php. Dort kann ich sachen posten. Doch ich will nur das der User der eingeloggt ist, seine eigenen post und bilder sieht.

Ich bekomme diesen Fehler beim posten:
Insertion Failed:Cannot add or update a child row: a foreign key constraint fails (`mdb_ss534`.`item`, CONSTRAINT `item_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`))


Dies ist meine DB:

DB_Design.jpg


Dies ist die postItem.php
PHP:
<?php 
include 'dbc.php';
$err = array();
$msg = array();
session_start();

if (!isset($_SESSION['user_name']))
{
	header('Location: login.php');
}


if(isset($_POST['submit']))
{
$subject = $_POST['subject'];
$description = $_POST['description'];

if(empty($_POST['subject']))
	{
		$err[] ='Please enter a Subject';
	}

else if(empty($_POST['description']))
	{
		$err[] ='Please enter a Description';
	}

if (empty($err))
	{
			$sql_insert = "INSERT into `item`
			(`subject`,`description`
			)
		    VALUES
		    ('$subject','$description')
			";
		mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());
		$_POST=array();
		$msg[] ='Successfull saved';
	}?>

Dies ist mein login.php
PHP:
<?php 
include 'dbc.php';
$err = array();

if (isset($_POST['doLogin']))
{
$username=$_POST['user_name'];
$password=$_POST['pwd'];
$username = addslashes($username);
$username = mysql_real_escape_string($username);
$password = md5(mysql_real_escape_string($password));
 


$sql="SELECT * FROM user WHERE user_name='$username' and pwd='$password'";
$result=mysql_query($sql);
 
$count=mysql_num_rows($result);
 
 
if($count==1){
$sql="SELECT approved FROM user WHERE user_name='$username'";
$result= mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
	if(!$row['approved']){
		$err[] = "Account not approved.Please check your email";

	}else{

		 session_start();
	 $_SESSION['user_name']=$username;
	 header("location:myaccount.php");
	}
}
}
else 
    {
    $err[] ="Wrong Username or Password";
}
 


}
					 
?>

Wenn ihr mir hier weiterhelfen könntet, würde ich mich sehr freuen

Danke
 
Zuletzt bearbeitet:
Dann bekomme ich diese Fehlermeldung:
Insertion Failed: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 user_id='Peter'' at line 5
 
Der Fehler liegt dann "kurz" davor, zeig mal die komplette SQL Anweisung.

Wobei diese Meldung nichts damit zu tun hat was Yaslaw dir geraten hat!
 
Das ist der Code

PHP:
<?php 
include 'dbc.php';
$err = array();
$msg = array();
session_start();

if (!isset($_SESSION['user_name']))
{
	header('Location: login.php');
}

$_SESSION['user_id'];
if(isset($_POST['submit']))
{
$subject = $_POST['subject'];
$description = $_POST['description'];

if(empty($_POST['subject']))
	{
		$err[] ='Please enter a Subject';
	}

else if(empty($_POST['description']))
	{
		$err[] ='Please enter a Description';
	}

if (empty($err))
	{
			 $sql_insert = "INSERT into `item`
			(`subject`,`description`
			)
		    VALUES
		    ('$subject','$description') WHERE user_id='{$_SESSION['user_id']}'
			";



		mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());
		$_POST=array();
		$msg[] ='Successfull saved';
	}
 
Zurück