Как выбрать несколько строк из mysql с одним запросом и использовать их в php

в настоящее время у меня есть база данных, как показано на рисунке ниже.

enter image description here

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

mysql_fetch_assoc()

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

array['number2'][2] 

или что-то подобное

3 ответов


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

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


$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 переменная(массив),но когда произойдет следующая итерация, она будет потеряна.Таким образом, мы копируем содержимое array $row в многомерный массив с именем $SubjectCode.содержимое каждой строки будет сохранено в первом индексе этого массива.Это может быть позже повторно использовано в нашем сценарии. (Я новичок в PHP,поэтому, если кто-то столкнулся с этим, кто знает лучший способ, пожалуйста, упомяните его вместе с комментарием с моим именем чтобы я мог учиться новому.)


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

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

Демо-Ссылке