所以我正在做一个学校项目来创建一个作品集展示网站,其中一个主要的必需功能是为图像创建一个喜欢的按钮。我正在使用 xampp 来托管文件和数据库。每次有人单击按钮时,我都试图让它变得如此简单,它会在表中的“喜欢”列中添加 +1,但它似乎不起作用。我对此还是陌生的,因此将不胜感激。 这是作为
的代码块<h1><?php echo $_SESSION['name'] ?>'s work </h1>
<?php
$username ="root";
$password ="";
$hostname ="localhost";
//connection to database
$conn = mysqli_connect($hostname,$username,$password)
or die("unable to connect to my SQL");
$lastid = $_SESSION['user'];
$image3 = "SELECT * FROM staff.image WHERE `user`='$lastid' ";
$r=mysqli_query($conn, $image3);
while ($row = mysqli_fetch_array($r))
{
?>
<ul id="rig">
<li>
<a class="rig-cell">
<?php echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['img'] ) . '" align="middle" height=50% " />'; ?>
<span class="rig-overlay"></span>
<span class="rig-text"> <?php echo $row['img_name']."<br>"; ?></span>
</a>
<form method="POST" action="" class="radiowrapper" >
<input class="like" type="submit" name="problem" value="<?php echo $row['img_id']; ?>" id="name_<?php echo $row['img_name']; ?>">
</form>
</li>
</ul>
<?php
if (isset ($_POST['problem']))
{
echo $sql = "UPDATE staff.image SET likes='".$row['likes']."'+1 WHERE img_id='".$row['img_id']."'";
}
}
?>
我有另一个文件,让用户上传他选择的图像,并为它写一个名字,并将它保存在 staff.image 中。这里有一些截图
我不太明白这个问题,我一直在尝试不同的方法来编写 UPDATE 函数,但无济于事。如果我不清楚某些事情,您需要更多详细信息,我会立即发布。 提前致谢!
最佳答案
您想知道为什么它会回显查询吗?
很简单,你告诉它:
if (isset ($_POST['problem']))
{
echo $sql = "UPDATE staff.image SET likes='".$row['likes']."'+1 WHERE img_id='".$row['img_id']."'";
^^^^
}
另外,您从未执行过查询。
所以,
//added this part after the while loop
if (isset ($_POST['problem']))
{
$sql = mysqli_query($conn, "UPDATE staff.image SET likes=likes+1 WHERE img_id='".$_POST['problem']."'");
if($sql){
echo "Success";
}
else {
echo "<i>Houston, we have a problem:</i> " . mysqli_error($conn);
}
}
- 使用
mysqli_affected_rows()
为了真实。
关于php - 试图在 mysql 表中创建一个类似按钮的计数器,但是 UPDATE SET 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41475722/