Как выбрать несколько строк из MySQL одним запросом и использовать их в PHP - PullRequest
8 голосов
/ 26 июня 2011

У меня сейчас есть база данных, как на картинке ниже.

enter image description here

Там, где есть запрос, который выбирает строки с номером 1, равным 1. При использовании

mysql_fetch_assoc()

в php мне дают только первое, есть ли способ получить второе? Как через двумерный массив, как

array['number2'][2] 

или что-то похожее

Ответы [ 3 ]

14 голосов
/ 26 июня 2011

Использовать повторные вызовы 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"];
}

Если вам нужно, вы можете использовать это для создания многомерного массива для использования в других частях вашего скрипта.

6 голосов
/ 18 апреля 2014
$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 .contents каждой строки будет сохранен в первом индексе этого массива. Это может быть позже использовано в нашем скрипте.(Я новичок в PHP, поэтому, если кто-то сталкивался с этим, кто знает лучший способ, пожалуйста, укажите это вместе с комментарием с моим именем, чтобы я мог узнать новое.)

1 голос
/ 01 апреля 2017

Это еще один простой способ

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

Демо-ссылка

...