0

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

   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_photo.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”应该处理数据并将其添加到数据库中. 没有照片被添加到数据库中,我真的不知道这里有什么问题。我恳请帮助,即使这可能是一个简单的问题,如果您需要我澄清一些事情,请询问,同时,有人可以帮忙吗?提前致谢。

4

2 回答 2

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 是图像表中的一列,用于获取特定图像的哈希值。
于 2012-11-10T21:37:59.023 回答
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);
    }

    }
    }
于 2012-11-10T22:09:56.313 回答