如何使用一个查询从mysql中选择多行并在php中使用它们

时间:2011-06-26 02:36:33

标签: php mysql multidimensional-array fetch multirow

我目前有一个如下图所示的数据库。

enter image description here

如果有查询选择number1等于1的行。使用

mysql_fetch_assoc()
在PHP中我只给出了第一个有没有办法获得第二个?就像通过像

这样的二维数组
array['number2'][2] 

或类似的东西

3 个答案:

答案 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"]);
}

Demo Link