为什么echo只打印PHP数组中的一个值?

时间:2014-12-29 04:02:11

标签: php mysql sql

我收到了以下代码:

$comments = $db->QueryFetchArray("SELECT * FROM `ycommentbox` WHERE `url`='".$id."'");
foreach ($comments as $comment) {
    echo $comment;
}

回应:

  

" test121677129055"

" ycomemntbox"结构:

three rows

为什么它不会回显其他2行而只是第一行?

应该回应一下:

  

" test121677129055"
  " test221677129056"
  " test321677129057"

4 个答案:

答案 0 :(得分:1)

因为QueryFetchArray只返回一行;它只是一个数组,因为它包含该行的所有列值。

要获取所有行,您需要执行QueryFetchAll将它们放在一个大数组中,或者在一个将运行一次的循环中执行初始Query后跟FetchArray每行。

答案 1 :(得分:1)

试试这个

您的ID想要与此查询匹配:

 $comments = $db->QueryFetchAll("SELECT * FROM `ycommentbox` WHERE `url`='".$id."'");
    foreach ($comments as $comment) {
        echo $comment;
    }

或者您可以像这样更改此查询

$comments = $db->QueryFetchAll("SELECT * FROM `ycommentbox`");
        foreach ($comments as $comment) {
            echo $comment;
        }

答案 2 :(得分:1)

您可以将print_r用于多个值
并使用echo表示单值ok  
如果您只使用echo,请使用echo&在""之间的tr td html标签 在"".$variable中写下开始标记。并再次在`""

之间结束标记

答案 3 :(得分:0)

for循环看起来没问题,所以我建议先做一个{echo count($ comments);}来检查查询返回的实际行数。它将首先验证查询。