Урок №8. Вытаскиваем значения из базы данных на сайт.

Рис 1
Рис 2

После соединения с базой данных необходимо вытащить и распределить  всю информацию из нее на нашей web странице. Например :

(рис. 1)

Основная задача этого урока: научиться выборке значений из базы данных MySQLи вставка их на страницу через PHPфункции.

Для того, чтобы выполнить любую транзакцию(удалить, вытащить, вставить…) с базой данных необходимо выполнить запрос к базе. Т.е “сказать” компьютеру что он должен сделать и с чем ему нужно провести действия. Запрос можно сделать с помощью функции mysql_query. Query с англ. переводится как запрос.

Самый простой запрос может выглядеть следующим образом:

mysql_query("SELECT * FROM site",$db);

Т.к. mysql_query – это функция, то ее параметры нужно указывать в круглых скобках () и кавычках.

Команда SELECTпроизводит запрос на выборку элементов из базы данных, т.е строчка указанная выше на формальном языке запишется виде: “Выбрать все из таблицы site”.

Далее нужно указывать те поля, с которыми нужно произвести необходимые действия. Их можно перечислять вручную, через запятую, но также можно поставить значек "*", который означает, что выбрать нужно все поля в таблице.

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

mysql_query("SELECT id, teg, info FROM site",$db);

После того, как мы сказали, что нужно сделать и с какими полями, нужно еще сказать в какой таблице эти поля содержаться. Ведь таблиц может быть несколько, правильно?

Поэтому мы пишем служебное слово FROM и указываем имя таблицы.

Последним этапом нужно указать номер соединения с базой данных $db. Его мы получили в предыдущем уроке.

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

$sql_select = mysql_query("SELECT * FROM site ",$db);

Выбрать все поля из таблицы site и занести их в переменную $sql_select

Но данные, которые хранятся в переменной $sql_select, еще не приспособлены для вставки. Если написать <? echo $sql_select; ?>, то должен появиться только идентификатор соединения с базой данных (Resource id #3). С помощью команды SELECT, нужные поля мы пока еще только выделили, но еще не копировали на веб-страницу.

Чтобы приспособить эти значения для вставки на веб-страницу, нужно "пропустить" их через специальную функцию mysql_fetch_array().

Эта функция позволяет поля из базы данных переместить в массив, который можно использовать на веб-странице.

$arr = mysql_fetch_array($sql_select);

Этой командой мы сказали, что в массив $arr нужно скопировать первую строку значений из запроса $sql_select.

(рис. 2)

После такой не хитрой операции, мы уже можем вытаскивать необходимые значения из массива $arr и вставлять их туда, куда захотим. Элемент из массива вытаскивается при помощи названия его поля, которое используется в качестве адреса.

<? echo $arr['title']; ?>

Вывести значения элементов можно:

1 вариант. Нужно немного изменить начальный запрос и добавить к нему следующую запись:

$sql_select = mysql_query("SELECT * FROM pages WHERE id='2'",$db);

Слово WHERE переводится как "где". Т.е. запрос теперь будет давать команду: выбрать все поля из таблицы pages, ГДЕ поле id = 2.

2 вариант. Связан с одной очень важной особенностью использования функции  mysql_fetch_array(). Дело в том, что эта функция имеет внутренний счетчик, и сколько раз она будет встречаться в исходном коде, такая строка из базы данных, и будет у нас выводиться.

Например, если нам нужно вывести вторую строку (с id=2), то нужно написать:

$arr = mysql_fetch_array($sql_select);
$arr = mysql_fetch_array($sql_select);

два раза. С каждым разом внутренний счетчик этой функции увеличивается на 1 и выводится следующая по очереди строка.

Также для организации раздела статей на нашем сайте нам необходимо передавать переменные в разные страницы программы. Например,  для  выбора другой строки таблицы из нашей базы данных.

Допустим, что у нас есть два php-файла: index.php и raznoe.php. Если мы создали в файле index.php переменную a ($a = 3;), то в файле raznoe.php, мы ее использовать не сможем. Т.к. она в нем нигде не объявлялась.Существует два метода передачи переменных: GETи POST. Каждый из этих методов имеет свои особенности, но на данном этапе рассмотрим передачу методом GET.