1

更新:我使用 for 循环解决了它:

for ($i=0; $i < mysql_num_rows($result); $i++) { 
$row = mysql_fetch_assoc($result);
echo $row['name'];
}

原始问题:

这看起来有点愚蠢。我敢肯定我错过了一些非常简单的东西,因为我之前能够做到这一点。无论如何,我想为数组中的每个项目回显一些文本。这个数组是从 mySQL 派生的。

这是代码

while ($row = mysql_fetch_assoc(mysql_query("SELECT * FROM files"))) {
echo $row['name'];
}
4

3 回答 3

1

你能发布完整的代码吗?我想你忘记了数据库连接。

尝试这个:

    $result = mysql_query("SELECT * FROM files") or die (mysql_error());
    while ($row = mysql_fetch_assoc($result)) {
        var_dump($row['name']);
    }

这会抛出一个错误,我猜你在那里犯了一个错误。此外, var_dump() 您的 $row 可以 100% 确保您具有“a”值。

另外,您确定该行确实存在吗?如果没有任何记录,则 $row 上的回显将不起作用,因为它不存在。

另外,像这样将错误报告设置为 E_ALL。

    error_reporting(E_ALL);

此外,由于您在 while() 循环内运行查询,因此它将永远继续运行。因此,首先运行查询,并将其放入变量中,然后循环遍历结果。(见我上面的一段代码)

于 2012-08-25T12:25:42.530 回答
0

您可以单独执行查询而不是 while 循环,因为如果您的查询返回超过 1 行,它将进入循环。显示您的循环仅打印结果的第一个数据,并且您的循环是无限的。

于 2012-08-25T12:27:04.527 回答
0

从您的问题来看,它似乎很简单,试试这种方式它的工作原理。

    $sql="SELECT name From files";
    $names = $db->query($sql);
    while($name1 = $db->fetchByAssoc($names))
    {
        echo $name1['name'];
    }
于 2012-08-25T12:44:34.690 回答