while($row=mysql_fetch_array($result))
{echo("<div>ID:".$row['id'].", name:".$row['name']."</div>");}这个能把所有商品ID号和商品名显示出来。但是嘛,我要多次调用。当然,不可能重复读取数据库。while($row=mysql_fetch_array($result))
{$q="<div>ID:".$row['id'].", name:".$row['name']."</div>";}改成这样后,只能显示最后一行商品的数据。
while($row=mysql_fetch_array($result))
{$q=echo("<div>ID:".$row['id'].", name:".$row['name']."</div>");}改成这样后,又显示语法错误。这个有什么办法解决?我就是想把所有商品的信息,放在一个变量里,以后多次调用。请问PHP如何实现?

解决方案 »

  1.   

    mysql_fetch_array($result)的结果就是所有的查询结果,也就是多行。只是你的存储方式不对,应该如下:
    $q = array();
    $i = 0;
    while($row=mysql_fetch_array($result)){
        $q[$i]="<div>ID:".$row['id'].", name:".$row['name']."</div>";
        $i++;
    }
      

  2.   

    你可以把它的值 放到数组中啊 这是把取到的数据放到数组中:
    可以把得到的数组放到自己定义好的一个值就行了:
    function query($sql) {
    $result=$this->dbpdo->query($sql);
    $arr = array ();
    foreach ( $result as $key => $row ) {
    foreach ( $row as $k => $r ) {
    if (is_string ( $k )) {
    $arr [$key] [$k] = $r;
    }
    }
    }
    return $arr;
    }
      

  3.   

    q=echo("<div>ID:".$row['id'].", name:".$row['name']."</div>");echo是输出语句,当然会有语法错误,
    直接用数组保存就好了.
    $q[] = "<div>ID:".$row['id'].", name:".$row['name']."</div>";