如何对mysql数组中的每一行执行函数


How to perform a function for every row in a mysql array?

UPDATE:我使用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'];
}

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

试试这个:

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

这会造成一个错误,我猜你在那里犯了一个错误。同时,var_dump()您的$行,以确保您有100%的"a"值。

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

同样,将错误报告设置为E_ALL,就像这样。

    error_reporting(E_ALL);

此外,由于您在while()循环中运行查询,它将永远运行。因此,首先运行查询,并将其放入变量中,然后循环查看结果。(请参阅我上面的代码)

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

从你的问题来看,它看起来很简单,试着用这种方式吧。

    $sql="SELECT name From files";
    $names = $db->query($sql);
    while($name1 = $db->fetchByAssoc($names))
    {
        echo $name1['name'];
    }