我想创建一个包含两列的名称表,其中的名称来自数据库,但我不知道如何......我需要帮助。
姓名:詹姆斯,约翰,保罗,彼得
这是我的代码:
<?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 |
+-------+-------+
我需要你的帮助。
答案 0 :(得分:2)
echo "<tr>";
while($res = mysql_fetch_array($q)){
$count++;
if (!($count % 2)){ echo "</tr><tr>"; }
echo "<td>{$res['id']}{$res['title']}</td>";
}
echo "</tr>";
答案 1 :(得分:1)
一个功能
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;
}
代码
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>
答案 2 :(得分:1)
好吧,如果没有关系,并且该表仅用于布局:
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和搜索引擎优化的html内容比率需要考虑。如果你不我想要固定的高度,你可以像上面的td / tr一样包裹每一行。
答案 3 :(得分:0)
while($res = mysql_fetch_array($q)){
$count++;
echo "<tr>";
foreach($res as $val){
echo "<td>{$val}</td>";
}
echo "</tr>";
}
答案 4 :(得分:0)
while ($res = mysql_fetch_array($q)){
if ($count % 2 == 0) {
echo "<tr>";
}
echo "<td>{$res['id']}{$res['title']}</td>";
if ($count % 2 == 0) {
echo "</tr>";
}
$count++;
}
编辑:我应该更频繁地重新加载。