Привет читатель. Сегодня я продолжаю Вас учить небольшим азам и основам MySQL совместно с PHP. В прошлом уроке мы уже создали базу данных и в ней одну таблицу с данными. Сегодня мы выведем все значения из нашей одной основной таблицы. Для этого мы обязательно вернемся к прошлому уроку, и на его основе будем выбирать наши данные. Сегодня в наш рацион по этому поводу будут добавлены новые функции для этой работы.
Итак, приступим. Как и писал раньше берем параметры подключения из предыдущего урока, а вместо строчки print ("Соединение Установлено"); мы запишем наш запрос вывода из базы данных. Но сначала я все таки покажу пример, а уж потом опишу его.
<?php $link = mysql_connect("$bd_host", "$bd_user", "$bd_pass") or die("Could not connect: " . mysql_error()); mysql_select_db('test-bd', $link); $result = mysql_query("SELECT * FROM `cars`", $link); $row = mysql_fetch_array($result); echo "< br > $row[id]"; echo "< br > $row[auto]"; echo "< br > $row[kuzov]"; echo "< br > $row[year]"; echo "< br > $row[probeg]"; mysql_close($link); ?>
Результатом выполнения этого кода будет:
1
Ауди
Седан
2005
40000
Ну а теперь распишу что тут и что каждое это что делает (загнул не хило).
mysql_select_db - Выбирается база данных, из которой мы будем выбирать таблицы.
mysql_query - Запрос, которым мы выбираем данные из таблицы.
mysql_fetch_array - Обрабатывает ряд запроса и возвращает ассоциативный массив.
Ситуация теперь проясняется, но сразу возникает большой вопрос в результате запроса находится не одна строка запроса, а более, так почему же выводится только одна строка. Еще раз прочитайте что делает функция mysql_fetch_array. Хорошо теперь сделаем вывод что нужно повторить.
<?php $link = mysql_connect("$bd_host", "$bd_user", "$bd_pass") or die("Could not connect: " . mysql_error()); mysql_select_db('test-bd', $link); $result = mysql_query("SELECT * FROM `cars`", $link); $row = mysql_fetch_array($result); echo "< br > $row[id]"; echo "< br > $row[auto]"; echo "< br > $row[kuzov]"; echo "< br > $row[year]"; echo "< br > $row[probeg]"; $row = mysql_fetch_array($result); echo "< br > $row[id]"; echo "< br > $row[auto]"; echo "< br > $row[kuzov]"; echo "< br > $row[year]"; echo "< br > $row[probeg]"; mysql_close($link); ?>
Теперь будет выведена информация по двум машинам. Хорошо, а как сделать так чтобы зараз выведены были все записи? Очень просто, и отправлю вас к повторению циклов. И тогда наш код преобразится:
<?php $link = mysql_connect("$bd_host", "$bd_user", "$bd_pass") or die("Could not connect: " . mysql_error()); mysql_select_db('test-bd', $link); $result = mysql_query("SELECT * FROM `cars`", $link); $row = mysql_fetch_array($result); do { echo "$row[id]-й автомобиль $row[auto] с кузовом $row[kuzov] выпуска $row[year]г. с пробегом $row[probeg]< br >"; } while ($row = mysql_fetch_array($result)); mysql_close($link); ?>
Получаем первый элемент выборки и входим в цикл do, который будет выполняться до тех пор, пока mysql_fetch_array будет возвращать ИСТИНУ. И вот следовательно результат того что выполнил наш код:
1-й автомобиль Ауди с кузовом Седан выпуска 2005г. с пробегом 40000
2-й автомобиль Ситроен с кузовом Купе выпуска 2006г. с пробегом 45000
3-й автомобиль Рено с кузовом Универсал выпуска 2005г. с пробегом 50000
4-й автомобиль Фиат с кузовом Универсал выпуска 2007г. с пробегом 30000
С уважением Ваш ИТ Инженер.
Профессиональная косметика gigi из Израиля. Лучшая косметика для тебя.