我想创建一个包含两列的名称表,其中的名称是从数据库中获取的,但我不知道如何创建。我需要帮助。
姓名:詹姆斯、约翰、保罗、彼得
下面是我的代码:
<?php
$con = mysql_connect("localhost","root","");
if(!$con){
echo "Unable to connect DB";
}else{
$db = mysql_select_db("persons",$con);
echo "Connected";
}
echo "<table border='1'>";
$count = 0;
$sql = "SELECT * FROM tbl_names";
$q = mysql_query($sql);
while($res = mysql_fetch_array($q)){
$count++;
echo "<tr>";
for($i=1;$i<=2;$i++){
echo "<td>{$res['id']}{$res['title']}</td>";
}
echo "</tr>";
}
echo "</table>";
?>
我希望输出是这样的:
+-------+-------+
| James | John |
+-------+-------+
| Paul | Peter |
+-------+-------+
但是我的代码返回:
+-------+-------+
| James | Jame |
+-------+-------+
| John | John |
+-------+-------+
| Paul | Paul |
+-------+-------+
| Peter | Peter |
+-------+-------+
我需要你的帮助。
发布于 2011-09-05 07:34:47
好吧,如果没有关系,并且该表仅用于布局:
echo '<div class="container">';
while($res = mysql_fetch_array($q)){
echo '<div class="item">'. $res['id'] . $res['title'] . '</div>';
}
echo '</div>';
在css中:
.container { width: 400px; float: left; }
.container .item { width: 50%; float: left; height: someFixedHeight; }
// or 200px
无论如何,我更倾向于只使用表格来显示实际的表格,而避免使用它们进行布局。您可以对div执行任何操作(在本例中,您还可以使用ul和li )。当然,这不是必须的,但通常它需要较少的HTML,对于SEO来说,html内容比率是需要考虑的因素。如果您不想要固定的高度,可以像上面的td/tr示例那样对每一行进行换行。
发布于 2011-09-04 22:44:26
echo "<tr>";
while($res = mysql_fetch_array($q)){
$count++;
if (!($count % 2)){ echo "</tr><tr>"; }
echo "<td>{$res['id']}{$res['title']}</td>";
}
echo "</tr>";
发布于 2011-09-04 23:24:02
一个函数
function sqlArr($sql){
$ret = array();
$res = mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
if ($res) {
while($row = mysql_fetch_array($res)){
$ret[] = $row;
}
}
return $ret;
}
A代码
mysql_connect("localhost","root","");
mysql_select_db("persons");
$data = sqlArr("SELECT * FROM tbl_names");
$data = array_chunk($data,2);
一个模板
<table border='1'>
<? foreach ($data as $row): ?>
<tr>
<? foreach ($row as $cell): ?>
<td><?=$cell['id']?><?=$cell['title']?></td>
<? endforeach ?>
</tr>
<? endforeach ?>
</table>
https://stackoverflow.com/questions/7299913
复制相似问题