我有一个搜索结果页面,显示MySQL数据库中的项目(table1)。我用来显示结果的代码是:
if (!empty($data)) {
foreach ($data as $item) {
echo '<div class="item">';
if (strlen($item['item_desc']) > 10) {
if (strlen($item['item_link']) > 10) {
echo '<a href="/item.php?id='.$item['item_id'].'">';
} else {
echo 'No Results Found';
}
}
}
}
每个搜索结果的图像都存储在一个单独的表中(表2)。我正在尝试使用下面的代码来计算table2中每个结果的图像数量,并在搜索结果页面上显示每个结果的数字,但它返回0值?
$result=mysql_query("SELECT count(*) as total from table2 where id = '" .$item['item_id']. "'");
$query=mysql_fetch_assoc($result);
echo $query['total'];
答案 0 :(得分:0)
我遗漏了一些有关您的数据库结构的数据,但我可以想象您将图像ID存储为整数,并且您正在请求id为字符串的计数。
所以,如果我是真的,这可能会有所帮助。使用item_id
删除php变量周围的引号 "SELECT count(*) as total from table2 where id = " .$item['item_id'];
答案 1 :(得分:0)
你可以试试这个..
$str=$item['item_id'];
mysql_query("SELECT count(*) as total from table2 where id = '$str'");
答案 2 :(得分:0)
有一个mysql函数来计算从mysql查询输出的行,它是 mysql_num_rows()。根据我对您的数据库的了解,您的代码可以是:
$item_id = $item['item_id'];
$result = mysql_query("SELECT * FROM table2 where id = '$item_id'");
$count = mysql_num_rows($result);
echo $count;
这将输出与您的查询匹配的记录数。