【问题标题】:PHP SQL I want to show 2 sets of data in 1 row of a tablePHP SQL 我想在表格的 1 行中显示 2 组数据
【发布时间】:2018-05-15 14:40:34
【问题描述】:

我真的不知道我在 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 mysql sql html-table


    【解决方案1】:

    试试下面的代码

    <?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>";
    
    
      ?>
    

    【讨论】:

      【解决方案2】:

      试试这样的

      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>";
      

      【讨论】:

        【解决方案3】:

        试试这个:

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

        【讨论】:

          【解决方案4】:

          最好的方法是使用两个浮动表格或使用 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 可以(并且应该)在此处进行优化,以添加一些 ID:s 和类以供 CSS 锁定。另外,不要使用 mysql,它已被弃用并且不会存在很长时间。请改用 mysqli 或 PDO。

          【讨论】:

          • 他们都工作了,只需要决定使用哪个。感谢您的所有帮助
          • 其他方法可能有效,但它们的语义意义较小。一行数据应该只是一组数据。屏幕阅读器将无法理解它。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-01-30
          • 1970-01-01
          • 1970-01-01
          • 2022-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多