当sql结果包含多行时,如何从中单独获取每一行


When a sql result contains multiple rows, how can I fetch each row individually from it?

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

例如:

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

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

我的查询如下所示:

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

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

如何快速将结果存储在每行的不同数组中,以最终创建一个漂亮的表格?

我不知道

你在用什么,但我想一个带有旧 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 获取响应。当它为 false 时,它会停止,但每次有一行时它都会返回一个数组。好吧,数组被分配给变量$row并且不会影响循环(尽量不要放$row =,看看它仍然循环)。然后,您可以只使用数组值,每次旋转后,mysql 结果指针将进一步移动一行。在最后一行,函数mysql_fetch_assoc将移动并看到没有结果,它将返回 false。循环停止并继续到下一行 php 代码。

while($row=mysql_fetch_array($result))
{
    $results[] = $row;
}