在表中显示PHP查询数组

时间:2010-05-20 14:03:12

标签: php mysql arrays

我想在桌面上显示来自Mysql的查询。但是,我的数据是这样的:

Array([0]=>data1, [1]=>data2, [2]=>data3,[3]=>data4,[4]=>pic1,[5]=>pic2,[6]=>pic3,[7]=>pic4);

我想将我的表格显示为:

|data1 | data2 |data3 |data4
|pic1  | pic2  |pic3  |pic4

我知道如何在单一语言中显示数据,如td或tr,但不知道如何在同一循环中执行tr和td。有帮助吗?提前致谢!

while($query=mysql_fetch_array($dataQuery)){
//not sure what to do here.
}

3 个答案:

答案 0 :(得分:2)

<?php
$rows = mysql_fetch_array($dataQuery);
echo "<table><tr>";
foreach($rows as $num => $row){
    echo "<td>".$row[$num]."</td>"; // here we echo every object in array
    if($num%2 == 0){
        echo "</tr><tr>"; // if we get to a number witch can be divided by 2 we add a new table row
    }
}
echo "</tr></table>";
?>

我认为这应该适合你。

答案 1 :(得分:2)

如果您有直线数据,但您知道应使用计数器尝试的列数。

$columns = 2;
$ct = 0;
while($query=mysql_fetch_array($dataQuery)) {

    if ($ct % $columns == 0) echo "<tr>";

    echo '<td>' . query_data_to_extract . '</td>';
    $ct++;

    if ($ct % $columns == 0) echo "</tr>";

}

答案 2 :(得分:2)

首先将两行组合为字符串然后在表行之间输出它们可能更容易。你知道你有多少项(行数),所以将它除以2。然后从该数字中减去一个(你可能想要检查它是否已经让你知道你没有犯错)来说明事实数组是从零开始的。遍历整个阵列。在你达到中途点之前,你正在组装你的标题行。之后,你正在组装你的图片行。然后回显表行标记之间的结果。这是代码中粗略(未经测试)的镜头:

$rows = mysql_fetch_array($dataQuery);
$total_rows = mysql_num_rows($rows);
// check total_rows is even here?
$midpoint = $total_rows / 2 - 1;
$title_row = '';
$photo_row = '';
foreach($rows as $num => $row)
{
    $new_row = sprintf("\n\t<td>%s</td>", $row[0]);
    if ($num < $midpoint)
    {
        $title_row .= $new_row;
    }
    else
    {
        $photo_row .= $new_row;
    }
}

echo sprintf("\n<tr>%s</tr>", $title_row);
echo sprintf("\n<tr>%s</tr>", $photo_row);