我目前有一个如下图所示的数据库。
如果有查询选择number1等于1的行。使用
时mysql_fetch_assoc()
在PHP中我只给出了第一个有没有办法获得第二个?就像通过像这样的二维数组
array['number2'][2]
或类似的东西
答案 0 :(得分:14)
使用重复调用mysql_fetch_assoc。它已在PHP手册中记录。
http://php.net/manual/function.mysql-fetch-assoc.php
// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
// then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
如果需要,可以使用它来构建一个多维数组,供脚本的其他部分使用。
答案 1 :(得分:6)
$Query="select SubCode,SubLongName from subjects where sem=1";
$Subject=mysqli_query($con,$Query);
$i=-1;
while($row = mysqli_fetch_array($Subject))
{
$i++;
$SubjectCode[$i]['SubCode']=$row['SubCode'];
$SubjectCode[$i]['SubLongName']=$row['SubLongName'];
}
这里while循环将获取每一行。该行的所有列都将存储在$row
变量(数组)中,但是当下一次迭代发生时它将丢失。所以我们复制数组的内容$row
成一个名为$SubjectCode
的多维数组。每行的内容将存储在该数组的第一个索引中。这可以在我们的脚本中重用。
(我是PHP的新手,所以如果有人遇到过这个知道更好方法的人,请提及我的名字,以便我可以学习新的。)
答案 2 :(得分:1)
这是另一种简单方法
$sql_shakil ="SELECT app_id, doctor_id FROM patients WHERE doctor_id = 201 ORDER BY ABS(app_id) ASC";
if ($result = $con->query($sql_shakil)) {
while ($row = $result->fetch_assoc()) {
printf ("%s (%s)\n", $row["app_id"], $row["doctor_id"]);
}