Чтобы выполнять запросы к базе нам необходимо к ней подключиться и выбрать таблицу . Это достаточно просто и выполняется при помощи 2 стандартных функций
mysql_connect - Открывает соединение с сервером MySQL
<?php
$link = mysql_connect("localhost", "root", "pass")
or die("Не могу подключиться");
print ("Соединение выполнено");
mysql_close($link);
?>
mysql_select_db - Выбирает базу данных MySQL
<?php
$link = mysql_connect("localhost", "root", "pass")
or die("Не могу подключиться" );
// сделать test текущей базой данных
mysql_select_db('test', $link) or die ('Не могу выбрать БД');
?>
Функция mysql_select_db вызывается только после функции mysql_connect. Для того чтобы подключиться и выбрать базу test, мы берем второй фрагмент кода. Этот фрагмент мы будем использовать в каждом скрипте, где необходима работа с mysql.
Запись в БДЗапись в БД
Чтобы создать запись в БД необходимо сформировать запрос, который будет вставлять значения в таблицу. Создаем новый файл в php expert editor‘е, вставляем фрагмент кода приведенный выше, который отвечает за подключение к БД и выбора нужной таблицы.
<?php
$link = mysql_connect("localhost", "root", "pass")
or die("Не могу подключиться" ); // сделать test текущей базой данных
mysql_select_db('test', $link) or die ('Не могу выбрать БД');
Далее необходимо создать запрос. Это достаточно просто сделать, смотрите далее
$query = "INSERT INTO notebook VALUES(NULL,'Asus F5RL','25000')";
Давайте разберем то, что мы присвоили переменной $query. Транскрипция запроса выглядит следующим образом:
$query = «INSERT(ВСТАВИТЬ) INTO (КУДА/В) ‘notebook’ VALUES()ЗНАЧЕНИЯ(Значение 1го поля,значение 2го поля,значение 3го поля)»;
Обратите внимание на первое значение в скобках после VALUES. Мы указали тип переменной NULL, это значит что в это поле ничего записываться не будет. Вот так просто мы разобрали с вами запрос, что делать дальше?!
Далее есть функция, которая отвечает за выполнение запроса, и возвращает результат. Это функция
mysql_query - Посылает запрос MySQL$result = mysql_query($query);
if($result) {echo "Даные внесены в базу данных";} else {echo "Ошибка, данные не были внесены в БД";}
mysql_close($link);
?>
В нашем случае переменная $result будет содержать результат данного запроса. В конце мы добавим простое условие, которое укажет нам об успешном или неуспешном выполнении запроса.
Итог можете посмотреть при помощи PhpMyAdmin, перейдя в таблицу notebook и нажав вкладку Обзор
Чтение БДЧтобы извлечь данные из базы, нам необходимо составить другой запрос, но прежде чем это сделать запишите в вашу таблицу несколько разных значений, пусть это будут разные модели ноутбуков с разными ценниками.
Для начала сделаем выборку всех ноутбуков с ценниками и выведем их в браузер. Для этого составляем следующий запрос:
$query = "SELECT * FROM notebook";
Здесь все достаточно просто:
$query = «SELECT(ВЫБРАТЬ) *(ЗВЕЗДОЧКА ОЗНАЧАЕТ ВЫБРАТЬ ВСЁ) FROM(ОТКУДА) notebook»;
Т.е. выбираем все столбцы из таблицы ноутбук. Далее осуществляем запрос:
$result=mysql_query($query);
while($r=mysql_fetch_array($result)) {
echo "$r[model] - $r[price]<br/>";
}
mysql_close($link);
?>
Используем функцию mysql_fetch_array чтобы получить массив значений, ключами которого являются имена столбцов (model и price).
Давайте теперь добавим условие, например вывести ноутбуки, цена которых превышает 30 000. Сделать это можно двумя способами. Можно просто внутри цикла while вставить условие
if($r[price] >=30000) {echo "$r[model] - $r[price]";}
Такое условие будет обрабатывать уже полученные данные из базы, но можно пойти другим путем – создать условие при запросе к базе.
Предыдущий фрагмент кода остается без изменений, меняется лишь только запрос:
$query = "SELECT * FROM notebook WHERE price>30000";
Транскрипция к запросу
$query = «ВЫБРАТЬ ВСЁ ИЗ notebook ГДЕ price>30000″;
$query = "SELECT * FROM notebook WHERE price>30000";
$result=mysql_query($query);
while($r=mysql_fetch_array($result)) {
echo "$r[model] - $r[price]";
}
mysql_close($link);
?>
Результатом выполнения этого скрипта будет вывод 2х позиций товаров, с ценой более 30 000.
Получение количества рядов можно сделать при использовании функции mysql_num_rows.
mysql_num_rows – Возвращает количество рядов результата запроса
Добавим её в наш скрипт и получим к общему списку товаров их количество:
$query = "SELECT * FROM notebook ";
$result=mysql_query($query);
while($r=mysql_fetch_array($result)) {
echo "$r[model] - $r[price]<br/>";
}
echo "_____________<br/>
Всего позиций:".mysql_num_rows($result);
mysql_close($link);
?>
Изменение данныхДавайте представим, что у нас переоценка товара, и ноутбук Sony подешевел на 2 000. Чтобы нам изменить данные в таблице необходимо составить следующий запрос:
$query = "UPDATE notebook SET price=52000 WHERE id=3";
Сделаю транскрипцию запроса:
$query = «ИЗМЕНИТЬ notebook УСТАНОВИТЬ price=52000 ГДЕ id=3″;
Заметьте, что в этом запросе мы отталкивались от идентификатора товара:
$result = mysql_query($query);
if($result) {echo "Данные изменены";} else {echo "Ошибка, данные не были изменены";}
mysql_close($link);
?>
В итоге ценник у ноутбука Sony станет 52 000.