将用户照片添加到数据库

时间:2012-11-10 21:04:38

标签: php mysql

我的问题是将图像的文件路径添加到数据库中的用户插槽。这是一个示例,这是要选择照片的页面:

   require_once("script.php");   
   <form method="post" action='golf.php'>
<?php
 require_once("golf_phot.php");
?>
</div>
<input id="butt" type="submit" value="add"/>
</form>

这是golf_phot.php的内容:

$query="SELECT category_id FROM categories WHERE category_name='golf'";
$resultt=mysql_query($query);
$row=mysql_fetch_array($resultt);
$do=$row['category_id'];
$query2="SELECT photo FROM all_photos WHERE all_photos.category_id='$do'";
$result=mysql_query($query2); 
while ($row=mysql_fetch_array($result))
{
 $photo=$row['photo'];
 echo "<input type=\"checkbox\" name=\"addlist[]\" value=\"".$photo."\">"."<img    src=\"".$photo."\">";
echo "<br>";
echo "<br>";
echo "<br>";
}

我已经完成了mysql连接和数据库选择,我不会发布,但它没有问题。这是“script.php”的内容:

if(isset($_POST['addlist']))
{
$pics=$_POST['addlist'];
$n=count($pics);
//now, to open the database user_info, using the stored session

//make the session variable legit
if(isset($_SESSION['user']))
{
$user=$_SESSION['user'];
}
//get the user's id from the user_info table
$querya="SELECT * FROM user_info WHERE user_info.fb_id='$user'";
$result1=mysql_query($querya);
//now that we have the id, we can add the photos to 
//user_photos, using their id as a foreign key
if(mysql_num_rows($result1)>0){
$rowa=mysql_fetch_array($result1);}
$user_id=$rowa['USER_INFO_ID'];
//before we add them, we'll need to see whether they exist or not.
//adding time:
for($i=0;$i<$n;$i++){
$data=$pics[$i];
$queryb="SELECT * FROM user_photos";
$result3=mysql_query($queryb);
if(mysql_num_rows($result3)>0){
while($rowa=mysql_fetch_array($result3))
{
$data2=$rowa['USER_PHOTOS'];
if($data==$data2)
{ $var='exists';   }
else{
$queryb="INSERT INTO user_photos(USER_PHOTOS_ID,USER_INFO_ID,USER_PHOTOS) VALUES('NULL','".$user_id."','".$data."')";
$result2=mysql_query($queryb);
}
}
}
}

//选择的照片添加到用户的图库!     } 用户数据变量全部设置为我在其他地方使用它们并且它们被成功添加到数据库中,上面,我包括一种方式来查看照片是否已经存在,我不添加它如果它(可能有问题)那么?)所以基本上,加载了带有照片的页面,用户检查他们想要的照片,然后将它们发送到同一页面,其中“script.php”应该处理数据并将其添加到数据库中。没有照片添加到数据库,我真的不知道这里有什么问题。我很乐意寻求帮助,即使这可能是一个简单的问题,如果你需要我澄清一些事情,请好好问一下,同时,任何人都可以帮忙吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

检查图片是否相同的一种解决方案是,使用图片上的哈希算法来确定相同的图片。

即:(伪代码)

$hash=sha1_file('pic-filename');

$sql='select * from image_table where hash_col ='.$hash;

if(num_rows($sql)>0)
  //don't save pic.
else
  // save the pic and it's hash value.
  • hash_col是图像表中的一列,用于获取特定图像的哈希值。

答案 1 :(得分:0)

请在script.php中尝试此代码。希望这对你有用。
我已删除条件if(mysql_num_rows($result3)>0){

<强>代码:

if(isset($_POST['addlist']))
    {
    $pics=$_POST['addlist'];
    $n=count($pics);
    //now, to open the database user_info, using the stored session

    //make the session variable legit
    if(isset($_SESSION['user']))
    {
    $user=$_SESSION['user'];
    }
    //get the user's id from the user_info table
    $querya="SELECT * FROM user_info WHERE user_info.fb_id='$user'";
    $result1=mysql_query($querya);
    //now that we have the id, we can add the photos to 
    //user_photos, using their id as a foreign key
    if(mysql_num_rows($result1)>0){
    $rowa=mysql_fetch_array($result1);}
    $user_id=$rowa['USER_INFO_ID'];
    //before we add them, we'll need to see whether they exist or not.
    //adding time:
    for($i=0;$i<$n;$i++){
    $data=$pics[$i];
    $queryb="SELECT * FROM user_photos";
    $result3=mysql_query($queryb);

    while($rowa=mysql_fetch_array($result3))
    {
    $data2=$rowa['USER_PHOTOS'];
    if($data==$data2)
    { $var='exists';   }
    else{
    $queryb="INSERT INTO user_photos(USER_PHOTOS_ID,USER_INFO_ID,USER_PHOTOS) VALUES('NULL','".$user_id."','".$data."')";
    $result2=mysql_query($queryb);
    }

    }
    }