PHP显示行

时间:2017-05-08 21:08:02

标签: php mysql

还是PHP新手。我想使用存储在数组中的ID从数据库中显示几行。实际上它只显示第一行(ID = 2),我正在寻找显示所有这些行(4行)的方法。

$i=0;
if($sql1= mysqli_query($conn, "SELECT * FROM table"))
{
  $arr = array(2,3,5,7);
  $sql2= mysqli_query($conn, "SELECT * FROM table WHERE id='".$arr[$i]."'");
  while($row1 = mysqli_fetch_assoc($sql2)) 
  {
    echo $row1['id'];
    echo $row1['content'];  //display some rows
    $i=$i+1; 
  }
}

任何人都知道如何实现这一目标?

1 个答案:

答案 0 :(得分:3)

您的代码中的问题是您使用数组,但从不遍历元素。此外,您可以使用单个查询获取结果,而不是多次执行查询:

$i=0;
if($sql1= mysqli_query($conn, "SELECT * FROM table"))
{
    $arr = array(2,3,5,7);
    $ids = implode(',',$arr);
    $sql2= mysqli_query($conn, "SELECT * FROM table WHERE id in (".$ids.")");
    while($row1 = mysqli_fetch_assoc($sql2)) {
        echo $row1['id'];
        echo $row1['content'];  //display some rows
        $i=$i+1; 
    }
}

如果你真的需要遍历数组,你可以这样做:

if($sql1= mysqli_query($conn, "SELECT * FROM table"))
{
    $arr = array(2,3,5,7);
    for($i = 0; $i < sizeOf($arr);$i++) {
        $sql2= mysqli_query($conn, "SELECT * FROM table WHERE id='".$arr[$i]."'");
        while($row1 = mysqli_fetch_assoc($sql2)) {
            echo $row1['id'];
            echo $row1['content'];  //display some rows
        }
    }
}