理解 mysqli_fetch_array()
Understanding mysqli_fetch_array()
有没有办法让下面的代码更干净?
我想像这样访问 $query4week
的行:$query4week[0]
。
但是 mysqli_query()
returns 一个我不知道如何访问其特定行的对象。因此,使用 fetch_array
和 for
循环我决定创建自己的索引。
$sql2 = "SELECT * FROM meals ORDER BY RAND() LIMIT 7";
$query4week = mysqli_query($con, $sql2) or die(mysqli_error($con));
for ($i = 0; $result = mysqli_fetch_array($query4week, MYSQLI_ASSOC); $i++)
{
$meal4week[$i] = $result['meal'];
}
我还在学习PHP,但对OOP主题还很薄弱,请耐心等待:-)
这样做
$i = 0;
while ($result = mysqli_fetch_array($query4week, MYSQLI_ASSOC))
{
$meal4week[$i] = $result['meal'];
$i++;
}
应该可以。
如果要获取关联数组,则不需要 for 循环。
$i = 0;
while($row = mysqli_fetch_array($query4week, MYSQLI_ASSOC))
{
$meal4week[$i] = $row['meal'];
$i++;
}
mysqli_query
returns 你一个代表查询结果的资源。您需要使用 mysql_fetch_*
函数逐行迭代结果。所以是的,如果您对第一行以外的内容感兴趣,则需要某种循环。
这里已经有一些非常合理的答案,但是评论有点长。如果您要创建的只是一个从索引 0 开始的数字索引数组,则不需要显式定义索引。
while($row = mysqli_fetch_array($query4week, MYSQLI_ASSOC)) {
$meal4week[] = $row['meal'];
}
应该可以正常工作。不需要 $i
。
有没有办法让下面的代码更干净?
我想像这样访问 $query4week
的行:$query4week[0]
。
但是 mysqli_query()
returns 一个我不知道如何访问其特定行的对象。因此,使用 fetch_array
和 for
循环我决定创建自己的索引。
$sql2 = "SELECT * FROM meals ORDER BY RAND() LIMIT 7";
$query4week = mysqli_query($con, $sql2) or die(mysqli_error($con));
for ($i = 0; $result = mysqli_fetch_array($query4week, MYSQLI_ASSOC); $i++)
{
$meal4week[$i] = $result['meal'];
}
我还在学习PHP,但对OOP主题还很薄弱,请耐心等待:-)
这样做
$i = 0;
while ($result = mysqli_fetch_array($query4week, MYSQLI_ASSOC))
{
$meal4week[$i] = $result['meal'];
$i++;
}
应该可以。
如果要获取关联数组,则不需要 for 循环。
$i = 0;
while($row = mysqli_fetch_array($query4week, MYSQLI_ASSOC))
{
$meal4week[$i] = $row['meal'];
$i++;
}
mysqli_query
returns 你一个代表查询结果的资源。您需要使用 mysql_fetch_*
函数逐行迭代结果。所以是的,如果您对第一行以外的内容感兴趣,则需要某种循环。
这里已经有一些非常合理的答案,但是评论有点长。如果您要创建的只是一个从索引 0 开始的数字索引数组,则不需要显式定义索引。
while($row = mysqli_fetch_array($query4week, MYSQLI_ASSOC)) {
$meal4week[] = $row['meal'];
}
应该可以正常工作。不需要 $i
。