一尘不染

如何用数据库中的值创建PHP两列表?

mysql

我想创建一个具有两列的名称表,其中的名称是从数据库中获取的,但是我不知道如何..我需要帮助。

姓名:詹姆斯,约翰,保罗,彼得

这是我的代码:

<?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 |
+-------+-------+

我需要你的帮助。


阅读 238

收藏
2020-05-17

共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;对于SEO,需要考虑html内容比率。如果要固定高度,可以像上面的td
/ tr示例一样包装每一行。

2020-05-17