PHP SQL我想在一个表的一行中显示两组数据

PHP SQL我想在一个表的一行中显示两组数据,php,mysql,sql,html-table,Php,Mysql,Sql,Html Table,我真的不知道我在用PHP做什么 我可以使用下面的代码让我的数据像这样显示 Site Name Name1 07990 111111 Name2 07801 111111 Name3 07887 111111 Name4 07825 111111 Name5 07785 111111 Name6 07778 111111 Name7 07887 111111 Name8 07796 111111 但是我想让它更像这样展示,但是我不知道怎么做,请帮忙 Site Na

我真的不知道我在用PHP做什么

我可以使用下面的代码让我的数据像这样显示

Site Name
Name1   07990 111111
Name2   07801 111111
Name3   07887 111111
Name4   07825 111111
Name5   07785 111111
Name6   07778 111111
Name7   07887 111111
Name8   07796 111111
但是我想让它更像这样展示,但是我不知道怎么做,请帮忙

Site Name
Name1   07990 111111                Name2   07801 111111
Name3   07887 111111                Name4   07825 111111
Name5   07785 111111                Name6   07778 111111
Name7   07887 111111                Name8   07796 111111
试试下面的代码

<?php 
$i=0;
echo "<table border='0'>
 <tr>
 </tr><tr>";
while($row = mysql_fetch_array($query))
 {
  if($i%2=="0"){echo "</tr><tr>";}

  echo "<td>" . $row['name'] . "</td>";
 echo "<td>" . $row['phone'] . "</td>";

    $i++;}
 echo "</tr></table>";


  ?>

试试这样的

echo "<table><tr>";
$i=1;
while($row=mysql_fetch_array($query)){
        echo "<td>".$row['name']."</td><td>".$row['phone']."</td>";
        if($i%2==0)
                echo "</tr><tr>"; 
        $i++;
}
echo "</tr></table>";
试试这个:

<?php 
$i = 0;
$table = 
"
    <table border='0'>
        <tr>
";
while($row = mysql_fetch_array($query))
{
    if($i%2 == 0 && $i != 0)
    {
        $table .=  "</tr><tr>";
    }
    $table .=
    "
        <td>" . $row['name'] . "</td>
        <td>" . $row['phone'] . "</td>
    ";
    $i++;
}
$table .= 
"
        </tr>
    </table>
";
echo $table;

?>

最好的方法是使用两个浮动表或使用CSS浮动行。请记住,您希望表在语义上保持合理

使用CSS 生成表并为表指定ID。HTML应如下所示:

<table class="my_table_id">
    <tr>
        <td>Name 01</td>
        <td>Phone 01</td>
    </tr>
    <tr>
        <td>Name 02</td>
        <td>Phone 02</td>
    </tr>
    <tr>
        <td>Name 03</td>
        <td>Phone 03</td>
    </tr>
    <tr>
        <td>Name 04</td>
        <td>Phone 04</td>
    </tr>
</table>
看看这把小提琴:

使用两个表 这种方法使表格先向下再向右读取,而不是先向右再向下读取。我会这样做,因为这样读表格更有意义

计算查询得到的总行数,将该行数减半,并在该行数向上舍入后在表之间插入一个分隔符。然后,您只需使用CSS根据自己的喜好设置表格的样式和浮动

echo "<table>";
while($row = $query) {
    $i = (isset($i) ? $i + 1 : 1);    //  Counter that ticks up for each row processed.
    echo "<tr>";
    echo "<td>" . $row['name'] . "</td>";
    echo "<td>" . $row['phone'] . "</td>";
    echo "</tr>";

    //  If we've reached half of the number of rows, insert a new table.
    if (count($row) / 2 == $i) {
        echo "</table>";
        echo "<table>";
    }
}
echo "</table>";
还有一把小提琴:


HTML可以而且应该在这里进行改进,以添加一些ID:s和类,以便CSS能够锁定。另外,不要使用mysql,它已经被弃用了,不会存在很长时间。改用mysqli或PDO。

它们都有效,只需决定使用哪种。谢谢你的帮助。其他方法可能有效,但语义意义不大。一行数据只能是一组数据。屏幕阅读器将无法理解它。
.my_table_id tr {
    width: 50%;
    float: left;
}
echo "<table>";
while($row = $query) {
    $i = (isset($i) ? $i + 1 : 1);    //  Counter that ticks up for each row processed.
    echo "<tr>";
    echo "<td>" . $row['name'] . "</td>";
    echo "<td>" . $row['phone'] . "</td>";
    echo "</tr>";

    //  If we've reached half of the number of rows, insert a new table.
    if (count($row) / 2 == $i) {
        echo "</table>";
        echo "<table>";
    }
}
echo "</table>";