【问题标题】:PHP Count Images Search ResultsPHP 计数图像搜索结果
【发布时间】:2015-09-13 18:16:57
【问题描述】:

我有一个显示来自 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';
            }
        }
    }
}

每个搜索结果的图像都存储在一个单独的表 (table2) 中。我正在尝试使用下面的代码来计算 table2 中每个结果的图像数量,并在搜索结果页面上针对每个结果显示数字,但它返回 0 值?

$result=mysql_query("SELECT count(*) as total from table2 where id = '" .$item['item_id']. "'");
$query=mysql_fetch_assoc($result);
echo $query['total'];

【问题讨论】:

  • $item['item_id'];有结果吗?
  • 是的,这会显示计数所需的 ID
  • 我可以看看你的表结构吗?
  • Table1: id, item_id, item_link, item_desc 和 Table2: id, item_id, image
  • table1的item_id是否和table2的item_id相等?

标签: php mysql


【解决方案1】:

我遗漏了一些关于您的数据库结构的数据,但我可以想象您将图像 id 存储为整数,并且您正在请求 id 为字符串的计数。

所以,如果我是真的,这可能会有所帮助。删除带有 item_id 的 php 变量周围的引号

"SELECT count(*) as total from table2 where id = " .$item['item_id'];

【讨论】:

    【解决方案2】:

    你可以试试这个。。

    $str=$item['item_id'];
    mysql_query("SELECT count(*) as total from table2 where id = '$str'");
    

    【讨论】:

      【解决方案3】:

      有一个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;
      

      这将输出与您的查询匹配的记录数。

      【讨论】:

        猜你喜欢
        • 2013-10-21
        • 1970-01-01
        • 2012-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多