【问题标题】:Double Selecting Data From MySQL从 MySQL 中双重选择数据
【发布时间】:2015-01-16 13:44:17
【问题描述】:

嘿,所以我正在尝试从 mysql 数据库中获取数据,当我从 mysql 中获取数据时,我的表中的数据增加了一倍?

这是我用来制作图表的代码。

$query = "SELECT id,username FROM users";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
    foreach($row as $id => $val)
    {
        echo 
        "<tr>
        <td>" . $row['id'] . "</td>
        <td>" . $row['username'] . "</td>
        <td></td>
        <td></td>
        </tr>";
    }
}

这是结果:

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    只使用一个循环

    while($row = mysql_fetch_assoc($result))
    {
          echo 
            "<tr>
            <td>" . $row['id'] . "</td>
            <td>" . $row['username'] . "</td>
            <td></td>
            <td></td>
            </tr>";
    }
    

    而不是双循环

    while($row = mysql_fetch_assoc($result))
    {
        foreach($row as $id => $val)
        {
            echo 
            "<tr>
            <td>" . $row['id'] . "</td>
            <td>" . $row['username'] . "</td>
            <td></td>
            <td></td>
            </tr>";
        }
    }
    

    【讨论】:

    • 哇,谢谢你感觉很愚蠢,因为这是一个快速简单的修复哈哈。
    【解决方案2】:

    使用 onli sing 循环...while 循环或 foreach...您正在使用这两个循环,例如 foreach 内部 while..使用它

    $query = "SELECT id,username FROM users";
    $result = mysql_query($query);
    while($row = mysql_fetch_assoc($result))
    {
    
            echo 
            "<tr>
            <td>" . $row['id'] . "</td>
            <td>" . $row['username'] . "</td>
            <td></td>
            <td></td>
            </tr>";
    
    }
    

    【讨论】:

      【解决方案3】:

      使用“mysql_fetch_array”而不是“mysql_fetch_assoc”:

      $query = "SELECT id,username FROM users";
      $result = mysql_query($query);
      while($row = mysql_fetch_array($result))
      {
          echo 
          "<tr>
          <td>" . $row['id'] . "</td>
          <td>" . $row['username'] . "</td>
          <td></td>
          <td></td>
          </tr>";
      }
      

      【讨论】:

      • 这两者的区别你知道吗?
      • @Terrii 检查与此answer的区别
      • mysql_fetch_assoc():获取结果行作为关联数组
      • mysql_fetch_array():将结果行作为关联数组、数字数组获取,也可以通过关联数组和数字数组获取。
      猜你喜欢
      • 2016-03-21
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2016-07-07
      相关资源
      最近更新 更多