我的网站上有一个产品页面,可以在MySQL数据库中运行,在点击缩略图时会在页面上创建产品项目。
每次点击缩略图时,有没有办法增加MySQL计数器?
如果有办法做到这一点,有人可以指出我正确的方向编码吗?
注意:此代码正常运行,但此更新所有产品都会计入。我需要更新表中仅查看过的产品项
我的mysql表看起来像
表名:图片
id | product_name |图片|价格|命中
这是我的PHP代码:
<?php
$connection = mysql_connect("localhost", "root", ""); // Establishing Connection with Server
$db = mysql_select_db("user"); // Selecting Database
$result=mysql_query("SELECT id,image,SUBSTRING_INDEX(product_name,' ',4) as product_name FROM images");
mysql_query("update images set hits = hits+1 where product_name = product_name");
$count = 0;
while($res=mysql_fetch_array($result))
{
if($count==3) //three images per row
{
print "</tr>";
$count = 0;
if($count==0)
print "<tr>";
print "<td>";
?>
<?php echo"<div>";?>
<?php echo"<img style='heigth:170px; width:200px'src='image1.php?id=$res[id]'>"?>
<?php echo "<a href=\"getImage.php?id={$res['id']}\">{$res['product_name']}<h3>Read More</h3></a>";?>
<?php echo"</div>";?>
<?php
$count++;
print "
</td>";
}
if($count>0)
print "</tr>";
?>
这里是getImage.php code`
<!DOCTYPE HTML>
<HTML>
<HEAD>
<style>
img.floatLeft
{
float: left;
margin-right: 10px;
margin-bottom: 1px;
padding-left: 2%;
}
p.padding {
padding-left: 2%;
padding-right: 2%;
}
h3 { color:#3300FF; font-family: Slab,Georgia,serif;font-size: 20px;
letter-spacing: .03em;text-transform: none}
div{background-color: white; border-style: ridge; height: 500px; width: 400px; margin-left:auto;
margin-right:auto; color: #000000; font: 12px arial, sans-serif; line-height: 18px;text-align: justify;}
</style>
</HEAD>
<body>
<?php
if (isset($_GET['id'])) {
$id = $_GET['id'];
$connection = mysql_connect("localhost", "root", ""); // Establishing Connection with Server
$db = mysql_select_db("user", $connection); // Selecting Database
$query1 = mysql_query("select * from images where id=$id", $connection);
echo"<div >";
while ($row1 = mysql_fetch_array($query1)) {
echo"<h3 align='center' color='red'>";
echo $row1['product_name'];
echo"</h3>";
echo "<img class='floatLeft'src=image1.php?id=".$row1['id']." width=150 height=140 />";
echo'<p class="padding">';
echo $row1['price'];
echo"</p>";
echo"</div>";
echo"</div>";
?>
<?php
}
}
?>
</body>
</html>
答案 0 :(得分:1)
您没有将任何变量传递给UPDATE语句。查看mysql_query和mysql_fetch_array
这样的事情可能会起作用
$result=mysql_query("SELECT id,image,SUBSTRING_INDEX(product_name,' ',4) as product_name FROM images");
$row = mysql_fetch_array($result)
mysql_query("update images set hits = hits+1 where product_name = " . $row['product_name']);
另请注意,mysql_query
不是从PHP访问MySQL数据库的推荐方法 - 请参阅Choosing a MySQL API
答案 1 :(得分:0)
<?php
session_start();
if (!isset($_SESSION['views'])) {
$_SESSION['views'] = 0;
}
$_SESSION['views'] = $_SESSION['views']+1;
$connection = mysql_connect("localhost", "root", ""); // Establishing Connection with Server
$db = mysql_select_db("user"); // Selecting Database
$result=mysql_query("SELECT id,image,SUBSTRING_INDEX(product_name,' ',4) as product_name FROM images");
mysql_query("update images set hits = ".$_SESSION['views']." where product_name = product_name");
$count = 0;
while($res=mysql_fetch_array($result))
{
if($count==3) //three images per row
{
print "</tr>";
$count = 0;
if($count==0)
print "<tr>";
print "<td>";
?>
<?php echo"<div>";?>
<?php echo"<img style='heigth:170px; width:200px'src='image1.php?id=$res[id]'>"?>
<?php echo "<a href=\"getImage.php?id={$res['id']}\">{$res['product_name']}<h3>Read More</h3></a>";?>
<?php echo"</div>";?>
<?php
$count++;
print "
</td>";
}
if($count>0)
print "</tr>";
答案 2 :(得分:0)
好的,deletedObjects
取消了那里的更新,因为你不想更新每个观看次数,删除
changedValues
然后在/product/product.php
页面上添加
mysql_query("update images set hits = hits+1 where product_name = product_name");
您还可以查看details.php
的模数运算符。您还应切换到使用mysqli或PDO驱动程序。
答案 3 :(得分:0)
只需在代码末尾添加一行代码(如下所示)以获取特定记录(在关闭连接之前)
代码是:
$result1 = $conn->query("UPDATE REPLACE_WITH_TABLE_NAME SET views = views + 1 WHERE REPLACE_WITH_CONDITION");