2012-01-27 43 views
-1

我需要什么帮助? - 当我将图像上载到数据库时,我想将用户的ID链接到我的SQL的正确字段中。不幸的是,当我上传图像时,没有任何内容被输入到ID字段中,因此似乎是它没有正确捕获它。使用MYSQL和PHP将会话ID链接到数据库

所以分解:当用户登录时,他有一个唯一的ID,即管理员ID是1.当他在他的用户面板上时,他点击上传第二张图片:然后他被导向到这个表格。

一旦在窗体上,他将输入一个描述,图像,他的ID应该从_SESSION中采取。

如果需要更多信息,我很乐意多写。

由于提前,

所以...继承人的代码:

// // FORM

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 

<form enctype="multipart/form-data" id="form1" name="form1" method="post" action="secondPic.php"> 
    <p> 
    <label for="name1">Fav Location Name: </label> 
    <input type="text" name="name1" id="name1" /> 
    </p> 
    <p> 
    <label for="photo1">Fav Location Photo: </label> 
<input type="file" name="photo1"><br> 
    </p> 
    <p> 
    <label for="id">ID: <? echo $rows['id']; ?> </label> 
    <input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>"> 
    </p> 
    <p> 
    <input type="submit" name="submit" id="submit" value="Submit" /> 
    </p> 
</form> 



</body> 
</html> 

//输入到数据库中//

<?php 
include "common.php"; 
$secondid = $_GET['id']; 
DBConnect(); 



$Link = mysql_connect($Host, $User, $Password); 

//This is the directory where images will be saved 
$target = "second/"; 
$target = $target . basename($_FILES['photo1']['name']); 


$favname = $_POST["name1"]; 
$pic2=($_FILES['photo1']['name']); 
$id = $_POST["$id"]; 



$Query ="INSERT into $Table_2 values ('0', '$id', '$favname', '$pic2')"; 

if (mysql_db_query ($DBName, $Query, $Link)){ 
print ("A record was created <br><a href=index.php> return to index </a>\n"); 

// Connects to your Database 
//mysql_connect("localhost", "jonathon_admin", "hello123") or die(mysql_error()) ; 
//mysql_select_db("jonathon_admin1") or die(mysql_error()) ; 


//Writes the photo to the server 
if(move_uploaded_file($_FILES['photo1']['tmp_name'], $target)) 
{ 

//Tells you if its all ok 
echo "The file ". basename($_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; 
} 
else { 

//Gives and error if its not 
echo "Sorry, there was a problem uploading your file."; 
} 


} else { 

print (" - Your Record was not created"); 
} 

mysql_close($Link); 
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
</body> 
</html> 

下面是我输入数据到DB时的表格:

**s_id id favname   pic2 
    1  0 testing the db piccy.png** 
+3

你有没有试过测试过你的任何代码?你真的应该试着弄清楚代码到底有多远,哪里是..等等,然后发布它,而不是发布整个事情。 – Dave 2012-01-27 17:05:03

+0

你在使用会话吗?将ID存储在一个会话中,并在您的帖子中使用它 – Drewdin 2012-01-27 17:12:31

+0

我敢打赌,您的问题是在'INSERT'查询的第一个字段处出现'0'。如果这对应于PK,则不会插入任何后续行。你应该指定一个没有PK的字段列表,或者提供'NULL'(* not *''NULL'')来解决这个问题。 – DaveRandom 2012-01-27 17:13:53

回答

0

您的隐藏字段没有输入名称。它看起来像你在你的隐藏的输入标签中使用id =“id”而不是name =“id”。

解决这个问题,它应该工作。

+0

已经改变了它,但它确实有name ='id'因此不应该有所作为我不认为,但改变了一切。 – 2012-01-27 17:37:46

0

我想,这有什么不对的第一个文件:

<label for="id">ID: <? echo $rows['id']; ?> </label> 
<input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>"> 

的$行变量没有在该文件中定义可言,因此,没有任何显示。 你提到,该ID是从_session变量得到的,也许你犯了一个错误,这将解决这个问题:

<label for="id">ID: <? echo $_SESSION['id']; ?> </label> 
    <input name="id" type="hidden" id="id" value="<? echo $_SESSION['id']; ?>"> 

不要忘记写:

session_start(); 

在开始时在html代码之前。

+0

谢谢你,现在会测试这个,我想我有! – 2012-01-27 17:22:42

+0

是啊,仍然没有运气的队友,但我想我确实需要,而不是$行肯定是一个错误。 – 2012-01-27 17:29:34

相关问题