为多个图像制作类似按钮

时间:2016-12-07 12:59:56

标签: php mysql image

我是php和MySql的新手,我正在尝试制作用户上传图片的图片上传网站。我将所有图像存储在一个目录中,并将路径存储到我的数据库中。

由于我不知道已上传的图片数量,因此我使用while循环来显示它们。

现在,我需要为每张图片创建“喜欢”按钮。虽然我能够为每个图像创建相似的按钮,但是我无法理解php将如何知道按下图像的按钮,并且一旦类似按钮已经已被按下,我应该如何增加该特定图像的“喜欢的数量”值,不仅在数据库中,而且在网页本身上。

据我所知,我必须使用php,MySql和Ajax。如果你能帮我解决这个问题,那可能会很棒。非常感谢! :)

这是我到目前为止能够编写的代码(在代码中,我没有显示类似按钮的创建,我完全对它感到困惑....代码只包含图像的显示如果你可以帮我解决如何继续创建类似按钮以及如何更新数据库并在网页上打印喜欢的数量而不刷新整个页面的话,那可能会很棒。:

$sql= "SELECT * FROM imagestable ";
$result=mysqli_query($conn,$sql);
//printing all the images one by one
while($row=mysqli_fetch_assoc($result)){

    $imagelocation=$row['imageDestination'];
    $imagetitle=$row['imagetitle'];
    $uploader=$row['uploader'];
    echo '<h1>'.$imagetitle.'</h1>
         <img src="'.$imagelocation.'" style="width:600px;height:100%;">
         <h1>Uploaded by:'.$uploader.'</h1>
         <br>
         ';          
}

谢谢!

2 个答案:

答案 0 :(得分:0)

您的数据库中可能应该有一个Id列来唯一标识每个图像(它们通常会自动生成并递增,而您无需执行任何操作,但我很久没有使用过MySql。)

$sql= "SELECT * FROM imagestable "; $result=mysqli_query($conn,$sql); //printing all the images one by one while($row=mysqli_fetch_assoc($result)){ $imagid = $row['imageid']; $imagelocation=$row['imageDestination']; $imagetitle=$row['imagetitle']; $uploader=$row['uploader']; echo '<h1>'.$imagetitle.'</h1> <img src="'.$imagelocation.'" style="width:600px;height:100%;"> <h1>Uploaded by:'.$uploader.'</h1> <br> // Here you add the button with the id from the database to identify the image // Here likeimage(id) is assumed to be a javascript function that somehow updates // the server that someone clicked the like button (and possibly updates the html DOM // to the new number of likes. <input type="button" onclick="likeimage($imageid);" /> '; }

答案 1 :(得分:0)

如果您没有自动增量字段,请运行此查询,然后在您的imagestable中添加2个新字段。

ALTER TABLE imagestable add column `id` int(11) unsigned NOT NULL AUTO_INCREMENT,add column totlikes INT(11) default 0;

您希望此图像的表单只传递id(请参阅ALTER脚本中的自动增量字段); 注意: - 我在这里使用了POST方法。

$id=$_POST['id'];
mysqli_query($conn, "UPDATE imagestable set totlikes=totlikes+1 where id=$id");