还是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;
}
}
任何人都知道如何实现这一目标?
答案 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
}
}
}