我想在桌面上显示来自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.
}
答案 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);