当我向SQL数据库发送查询并返回多行时,如何单独获取每一行?我已经失败了几个小时都没有任何结果。
例如:
有一个表,其中包含名称(前名和姓名):
汉斯汉森 汉斯彼得森我的查询如下:
$query = "SELECT * FROM names WHERE forename = 'Hans'";
我尝试使用mysql_result(),但此函数只返回一个字段。我想创建第二个函数,它基于mysql_result()(计数列 - > for循环创建数组),但我做了一些研究,很多人说,mysql_result()非常当你的结果变大时,慢。
如何以快速的方式将结果存储在每行的不同数组中,最终创建一个好看的表?
答案 0 :(得分:0)
while($row=mysql_fetch_array($result))
{
$results[] = $row;
}
答案 1 :(得分: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
获得响应。当它为false时它会停止,但每次有一行它都会返回一个数组。那么数组被赋值给变量$row
并且不会影响循环(尽量不要放$row =
并看它仍然循环)。然后,您可以只使用数组值,每次旋转后,mysql结果指针将进一步移动一行。在最后一行,函数mysql_fetch_assoc
将移动并看到没有结果,它将返回false。循环停止并继续到下一行php代码。