当我向我的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;
}