显然,好吧,先把它拆开,这样有一些东西要学:
while($row2 = mysql_fetch_array($result))
{
...
}
这部分看起来还可以,我们来看看循环内部:
$myarray = array("id"=>$theid, "name"=>name($id), "text"=>$row2[text]);
有多个点。可能最重要的是,因为它在循环内,所以您$myarray
在每次迭代中都覆盖。您想改为添加到数组中。我们开工吧:
$myarray = array(); # initialize the array first!
while($row2 = mysql_fetch_array($result))
{
$myarray[] = $row2; # add the row
}
之后,您可以输出它以证明它基本上可以工作:
var_dump($myarray);
这向您显示了一个包含所有行的数组。然后,您只需更改数据库查询,使其仅返回您感兴趣的字段。
如果您不能对数据库执行此操作,您也可以操作数组:
$myarray = array(); # initialize the array first!
while($row2 = mysql_fetch_array($result))
{
$myarray[] = array(
"id" => $theid,
"name" => name($id),
"text" => $row2['text']
);
}
var_dump($myarray);
现在结果应该看起来像你想要的那样。输出$myarray
:
foreach ($myarray as $number => $row)
{
echo '<div>Number ', $number, ':<dl>';
foreach ($row as $k => $v)
{
printf("<dt>%s</dt><dd>%s</dd>\n", $k, htmlspecialchars($v));
}
echo '</dl></div>'
}