在 php 中打印多行数组


Print multiple rows array in php

我有一个可以返回多行的查询。

$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
    $data[] = $row;
    foreach ($data as $row){
       echo $row['...'];
    }
}

问题是它只打印一行,而我应该打印 2 行。

有人可以帮助我吗?

问题可能是您正在重用$row变量。此外,逻辑有点奇怪:为什么每次获取新行时都要循环遍历$data?你的意思是这样做吗:

while ($row = mysql_fetch_array($result)){
    $data[] = $row;
}
foreach ($data as $row){
   echo $row['...'];
}

尝试类似操作:

$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
    foreach ($row as $k=>$v){
       echo $k ." = " . $v;
    }
}
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
    $data[] = $row;
    foreach ($data as $col){
       echo $col['...'];
    }
    echo '<br>';
}

echo '<table>';
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
    $data[] = $row;
    echo '<tr>';
    foreach ($data as $col){
        echo '<td>';
       echo $col['...'];
       echo '</td>';
    }
    echo '</tr>';
}
echo '</table'>;

也许问题是你在 while 循环中迭代$data数组,我认为你想收集$data中的所有行,并且只有在 while 中断时迭代它以显示结果。

$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
    $data[] = $row;
}
foreach ($data as $row){
       echo $row['...'];
    }

还是我误会了?

    Do some changes in your code for check no. of results
$result = mysql_query($query);

    while ($row = mysql_fetch_array($result)){
        foreach ($row as $val){
           echo $val;
        }
    }