这是我的代码:
echo "<table><tr>";
$count = 1;
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
extract($row);
$data = $row['info'];
echo "<td>".$data."</td>";
if ($count++ % 2 == 0) {
echo "</tr><tr>";
}
}
echo "</tr></table>";
以上代码的作用如下:
=========
= 1 = 2 =
= 3 = 4 =
= 5 = 6 =
=========
但是如何以这种格式显示信息?
=========
= 1 = 4 =
= 2 = 5 =
= 3 = 6 =
=========
答案 0 :(得分:1)
实际上,您不需要将数组解析为另一种形式......
<?php
$a = array(1,2,3,4,5,6,7);
$c = ceil(count($a)/2);
echo "<table>";
for($i=0; $i<$c;++$i){
echo "<tr><td>{$a[$i]}</td><td>{$a[$i+$c]}</td></tr>";
}
echo "</table>";
?>
当然你需要通过添加db操作来修改这段代码(比如mysql_num_rows而不是count),但它运行正常:enter link description here
答案 1 :(得分:1)
谢谢,伙计们!我感谢你的帮助,但这段代码对我来说非常合适。我只是想与其他可能觉得有用的人分享。 :)
$tmp=array();
$columns=2;
$row=ceil(mysql_num_rows($result)/$columns);
for ($x =1; $x <= $columns; $x++)
for ($y = 1; $y <= $row; $y++)
$tmp[$x][$y]=mysql_fetch_array($result);
echo "<table align=center width=\"50%\">\n";
for ($y =1; $y <= $row; $y++) {
echo "<tr>";
for ($x = 1; $x <= $columns; $x++)
if (isset($tmp[$x][$y]['ID']))
echo "<td>".$tmp[$x][$y]['info']." </a></td>";
else
echo "<td></td>";
echo "</tr>\n";
}
echo "</table>\n";
答案 2 :(得分:0)
简短的PSA ... mysql_
扩展名已弃用,最终将被删除。您现在需要开始使用mysqli_
。
您需要先解析数据。完成后,生成表格很容易。这适用于所有数据集
echo "<table>";
$count = 1;
$col1 = $col2 = array();
$rowcount = round(mysql_num_rows($result) / 2);
while($row = mysql_fetch_assoc($result)) {
if($count > $rowcount) $col2[] = $row['info'];
else $col1[] = $row['info'];
$count++;
}
$counter = 0; // Arrays start with 0
foreach($col1 as $row) { // $col1 will always be >= $col2
$row2 = (isset($col2[$counter])) ? $col2[$counter] : "";
echo "<tr><td>" . $row . "</td><td>" . $row2 . "</td></tr>";
$counter++;
}
echo "</table>";
答案 3 :(得分:0)
这是未经测试的,但你可以通过2个循环干净利落地实现这一点。根据{{1}}变量构建左右列。一直构建HTML,然后回显它。
编辑:我没有意识到你将数据分成两半并将前半部分放在表格的左栏上。我已经更改了下面的代码来执行此操作。
$count
答案 4 :(得分:0)
这是一些可以缩短代码的php魔法
<?php
$array = range(1, 20);
$count = 2;
$out = array_chunk($array, ceil(count($array)/$count));
array_unshift($out, null);
$out = call_user_func_array("array_map", $out);
?>
<table>
<?php foreach ($out as $row) : ?>
<tr>
<?php foreach($row as $column) : ?>
<td><?php echo( $column ); ?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>
另外,我建议您将与数据库相关的代码切换到PDO。除了所有这些不错的功能,比如自动转义,您可以轻松地从数据库查询中获取一系列元素,而不会产生所有这些mysql_fetch_array
废话。