1

当我向我的 SQL 数据库发送查询并返回多行时,如何单独获取每一行?我已经失败了几个小时没有任何结果。

例如:

有一个表,其中包含名称(前名和姓氏):

汉斯·汉森
汉斯·彼得森
彼得·彼得森

我的查询如下所示:

$query = "SELECT * FROM names WHERE forename = 'Hans'";

我尝试使用 mysql_result(),但是这个函数只返回一个字段。我想过创建第二个函数,它基于 mysql_result() (counting columns -> for Loop to create array),但我做了一些研究,很多人说,当你的结果变大时,mysql_result() 非常慢。

如何以快速的方式将结果存储在每一行的不同数组中以最终创建一个好看的表?

4

2 回答 2

0
while($row=mysql_fetch_array($result))
{
    $results[] = $row;
}
于 2013-10-06T13:17:59.460 回答
0

我不知道你在使用什么,但我猜一个带有旧 php mysql 函数的 mysql 数据库比你使用这个:

$result = mysql_query("SELECT * FROM names WHERE forename = 'Hans'");

while($row = mysql_fetch_assoc($result)){
    echo "$row[forename] - $row[sirname] - etc. <br>";
}

我也猜你是 php 新手,还不懂这些,但是你问的问题被问了多次并且已经回答了,所以在问这种简单的问题之前尝试搜索和学习。

你也可能问自己为什么要在 where 循环中声明一个变量。while 循环从mysql_fetch_assoc. 当它为假时,它会停止,但每次有一行时,它都会返回一个数组。好吧,数组被分配给变量$row并且不影响循环(尝试不放置$row =并看到它仍然循环)。然后,您可以只使用数组值,每次旋转后,mysql 结果指针将进一步移动一行。在最后一行,函数mysql_fetch_assoc将移动并看到没有结果,它将返回 false。循环停止并继续到下一行 php 代码。

于 2013-10-06T13:20:02.333 回答