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


PHP SQL I want to show 2 sets of data in 1 row of a 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 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 
//CONNECT TO THE SERVER
mysql_connect("???", "????", "???") or die ('dead');
//SELECT OUR DB
@mysql_select_db("???") or die ("dead");
$sql = "SELECT * FROM phonebook WHERE Address='Site Name'"; 
 Print "Site Name";
 $query = mysql_query($sql) or die(mysql_error());

echo "<table border='0'>
<tr>
</tr>";
while($row = mysql_fetch_array($query))
  {
  echo "<tr>";
  echo "<td>" . $row['name'] . "</td>";
  echo "<td>" . $row['phone'] . "</td>";
  echo "</tr>";
  }
echo "</table>";
 ?>

尝试以下代码

<?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对其进行样式设置

.my_table_id tr {
    width: 50%;
    float: left;
}

看看这个小提琴:http://jsfiddle.net/bter7ur2/

使用两个表

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

计算查询得到的总行数,将该行数减半,并在该行数之后插入表之间的分隔符(四舍五入)。然后,您只需使用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>";

还有一把小提琴:http://jsfiddle.net/8fj28vcg/

HTML可以(也应该)在这里进行润色,为CSS添加一些ID:s和类。此外,不要使用mysql,它已经被弃用,而且不会存在很长时间。请改用mysqli或PDO。