我有一个有超过30条记录的分页,并且在表名和#34;产品"下工作得很好。我还创建了另一个表名"注意"在同一个数据库下,该说明允许我阅读每个产品的注释。
现在我尝试在分页中添加新的列功能,以检查"注意"中是否已存在任何记录。使用product_id编号的表。
<?php
$sql = new mysqli($mysql_hostname, $mysql_user, $mysql_password,
$mysql_database);
$query = "SELECT product_id FROM notes WHERE product_id = $product_id";
$result = mysqli_query($sql, $query);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if(isset($row['$product_id'])) {
echo "<p>No note </p>";
} else {
echo "<p>have note </p>";
}
?>
我遇到的问题是&#34;注意&#34; table有3条记录,当我运行分页时,只显示第一行没有退出任何音符...而且只有一条记录而不是所有记录(30条记录)..我没有把&#34;限制1 )在WHERE语句中......
我的问题是,如何编写php代码以允许我记录是否有记录,但是在每个记录列中显示&#34;没有记录&#34;或者&#34;有说明&#34;如果&#34; product_id&#34;号码退出与否!
非常感谢你的帮助。答案 0 :(得分:2)
你需要遍历结果。
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
// do something
}
检查isset($row['product_id'])
毫无意义 - 如果它不等于$product_id
,则无论如何该查询都不会返回该行。
答案 1 :(得分:1)
mysqli_fetch_array
每行返回一个数组,并要求您循环调用以使用每个结果。另外,要从数组中调用元素,您需要$row['product_id']
而不是$row['$product_id']
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
if(isset($row['product_id'])) {
echo "<p>No note </p>";
} else {
echo "<p>have note </p>";
}
}
如果要显示数据库中的所有记录,无论product_id
如何,都可以将查询更改为:
$query = "SELECT product_id FROM notes";
答案 2 :(得分:-1)
您需要遍历mysqli_fetch_array
。试试这个
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
if(isset($row['$product_id'])) {
echo "<p>No note </p>";
} else {
echo "<p>have note </p>";
}
}