В настоящее время у меня есть база данных, как на картинке ниже.
Где есть запрос, который выбирает строки с номером 1, равным 1. При использовании
mysql_fetch_assoc()
в php Мне дается только первый, есть ли способ получить второй? Как через dimesional массив, как
array['number2'][2]
или что-то подобное
Используйте повторные вызовы 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"]); }
Демо-ссылка