使用PHP中的for循环显示表中的所有条目

时间:2015-07-18 10:46:09

标签: php mysql loops

我想使用for循环显示MySQL数据库中表格中的所有条目(出于某种原因,我需要for循环,while循环不是一个选项)。虽然我可以在while循环中正确完成,但我似乎无法通过for循环来完成此操作。

这是我的while循环代码

while ($row = mysqli_fetch_array($query))  
{
    echo "<p> " . $row['column-name'] . " </p>";
}

如何将其转换为for循环?我的意思是如何使用for循环的计数器变量导航到每一行?

$counter = mysqli_num_rows($result);    

for ($i = $counter; $i > 0; $i--) 
{ 
    echo ????;
}

如何回显列名并使用$i作为行引用?

2 个答案:

答案 0 :(得分:3)

你可以在while循环中使用变量(因此你得到一个行引用)
代码如下所示

$i=0; // this refer every row..now its 0
while ($row = mysqli_fetch_array($query))  
{
    echo "<p> " . $row['column-name'] . " </p>";
    $i++;  
}

如果你需要FOR循环

 
$row = mysqli_fetch_all($query);
    for($i=0;$i<count($row);$i++)
    {

       // thus you get $i as row reference

    }

mysqli_fetch_all返回numeric和assoc数组,所以不要忘记选择MYSQLI_ASSOC或 MYSQLI_NUM

答案 1 :(得分:-1)

如果您需要以反向(降序)顺序输出行,为什么不在查询中ORDER BY {field} DESC

然后您可以使用foreach()来运行所有结果,如下所示:

$res = $db->query ('SELECT column FROM table ORDER BY column DESC');
$output = '';
foreach ($res->fetch_array () as $line) {
    $output .= "<p>{$line['column']}</p>\n";
}

正如你所看到的,不需要for循环,while循环,也不需要任何其他花哨的技巧。只需在需要的地方回复$output,结果就会按照您希望的方式进行排序。