我正在尝试将我的mysql查询显示到一个相当独特的表中。 特点如下:
[RESULT1] [RESULT2] [内容]
[result3] [result4] [result5]
[result6] [result7] [result8]
...等
查询可以带回少至1个结果。 但我很难得到我需要包含在循环中的东西。
如果有人知道如何追求这样的事情,我会喜欢一些帮助! 提前谢谢!
编辑**这是我的代码,所以
结果在三列中出现,但我无法在右上角的单元格中显示其他静态内容。
$row = 0;
$column = 0;
echo "<table>";
while($row = mysql_fetch_assoc($result)) {
if ($column == 0) {echo "<tr>";}
if (($column == 2) && ($row == 0)){echo "<td>content</td></tr><tr>";}
echo "<td>".$row['business']."</td>";
$column++;
if ($column >= 3) {
$row++;
echo "</tr>";
$column = 0;
}
}
echo "</table>";
答案 0 :(得分:0)
假设一个纯html表,你有
$row = 0;
$column = 0;
echo '<table>';
while($row = mysql_fetch_assoc($result)) {
if ($column == 0) {
echo '<tr>';
}
if (($column == 2) && ($row = 0))
echo '<td>content</td></tr><tr>'; // output special content, start new row
}
echo "<td>$row[something]</td>";
$column++;
if ($column >= 3) {
$row++;
echo '</tr>';
$column = 0;
}
}
echo '</table>';
可能不会按原样运作,但应该给你一般的想法。基本上只输出行/列,直到到达第1行/第3列,然后输出您的特殊内容,否则只输出
答案 1 :(得分:0)
在$rows
中得到结果行后,将其拆分为数组数组:
$table = array();
while (count($rows)){
$group = array_slice($rows, 0, 3);
$rows = array_slice($rows, 3);
while (count($group) < 3) $group[] = array();
$table[] = $group;
}
现在$table
包含一个3元素数组的数组。最后一个被填充以包含3个元素,添加空数组直到我们有3.然后只输出它:
foreach ($table as $group){
echo "<tr>\n";
foreach ($group as $row){
if ($row['id']){
echo "<td>".format_data($row)."</td>\n";
}else{
# empty padding cell on last row
echo "<td> </td>\n";
}
}
echo "</tr>\n";
}