|
Архив - только для чтения |
Модератор форума: andycrowz |
Форум Корзина форума Корзина Урок PHP и MySQL.Учимся работать с БД MySQL. |
Урок PHP и MySQL.Учимся работать с БД MySQL. |
Введение
Проанализировав статистику переходов на сайт, я заметил что многие пользователи ищут уроки по MySQL. Поэтому я решил помочь, и открываю новую рубрику на сайте, её название будет MySQL. Хочу сказать вам что переход на БД в программировании открывает новые горизонты. В свое время я полностью изучил работу с файлами и знал все функции вдоль и поперек. Со временем для хранения информации, файлов становиться недостаточно, и зачастую решение какой либо задачи, выливается в танцы с бубном, громоздкий код и конечно потраченное время. В скором времени я опубликую достаточно большую статью по работе с файлами, а сейчас мы сделаем небольшой прыжок вперед и приступим к изучению элементарных функции для работы с MySQL. Создание БД MySQL Чтобы создать новую базу данных, нам необходим PhpMyAdmin. Если вы будете тестировать скрипты на локальном сервере, то создание БД не вызовет каких либо проблем. Набрав в адресной строке http://127.0.0.1/phpmyadmin, вы попадает в главное меню управления базами. Указываете имя базы данных на латинице, в качестве «Сравнения» указываете utf8_unicode_ci и нажимаем кнопку создать. После перезагрузки страницы мы попадаем в нашу базу данных. В скобках указано количество таблиц в базе. Создание таблиц На предыдущем скриншоте мы видим главное меню, в котором мы можем создать таблицу внутри базы данных. Для чего нужна таблица и что это такое? Таблица состоит из полей, вспомните например Microsoft Excel , там все рабочее поле разбито на ячейки. Например вы создаете таблицу, в которой создаете прайс техники В ней вы указываете имя колонки (товар, описание, цена) и далее забиваете информацию. Очень похожий принцип и у таблиц MySQL. Я специально создал таблицу notebook, и продублировал туда все значения, вот что получилось: Как вы видите у каждого столбца есть свое описание (id, model, price), они играют очень важную роль. В своих запросах мы будем выбирать нужные данные, удовлетворяющие каким либо условиям. Повторите мой вариант. Создайте таблицу с именем notebook, введите количество полей 3 и нажмите ОК. После нажатия кнопки, вы попадаете в следующее меню, где необходимо задать имя полей таблицы и выбрать тип данных, которые будут в них содержаться. Перед вами будут несколько полей, каждое из которых, будет иметь свое предназначение и хранить определенный тип данных. Первое поле у нас будет носить имя столбца, в качестве первого будет id – идентификатор товара. Он необходим для совершения каких либо действий с этим товаром (редактирование или удаление). Далее указываем Тип. Т.к. идентификатор будет числовой, то тип данных принимает значение INT или INTEGER (ЦЕЛОЕ ЧИСЛО). Далее вводим Длина/значение, указываем 5 (5 это не значит что максимальное количество будет 5, а то что значение будет не более 99999, я думаю этого хватит для начала). Далее идет поле сравнение, в нем необходимо указать в какой кодировке будут храниться данные. Для поля id мы оставляем значение по умолчанию. Атрибуты пропускаем. Далее переходим к полю По умолчанию и ставим значение единицу, это будет означать что первый товар будет начинаться с единицы. Переходим к Дополнительно и выставляем атрибут auto_increment. Это позволяет при добавлении новой записи, автоматически присваивать идентификатор товару, причем не случайным образом, а в порядке возрастания. Переходим к заполнению поля model. Тип мы выставим VARCHAR. VARCHAR (ПЕРЕМЕННОЕ ЧИСЛО СИМВОЛОВ), этот тип является текстовой строкой и может иметь любую длину до определённого реализацией максимума (обычно 254 символа). Для описания модели нам хватит длины строки в 200 символов, которые мы указываем в поле длина. Далее переходим к полю price. Здесь тип переменных будет выражен числами, поэтому тип данных устанавливаем INT, и длину значения 5. Ниже выставляем Тип таблиц – MyISAM, сравнение – utf8_unicode_ci и нажимаем кнопку сохранить. Если все значения были введены правильно то появиться окно, с выполненым запросом, структура таблицы и в левом меню вы увидите вашу новую таблицу notebook. На этом этап создания таблицы завершен, переходим к программированию. Подключение к БД MySQL Чтобы выполнять запросы к базе нам необходимо к ней подключиться и выбрать таблицу . Это достаточно просто и выполняется при помощи 2 стандартных функций.
Code <?php $link = mysql_connect("localhost", "root", "pass") or die("Не могу подключиться"); print ("Соединение выполнено"); mysql_close($link); ?> mysql_select_db - Выбирает базу данных MySQL
Code <?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‘е, вставляем фрагмент кода приведенный выше, который отвечает за подключение к БД и выбора нужной таблицы.
Code <?php $link = mysql_connect("localhost", "root", "pass") or die("Не могу подключиться" ); // сделать test текущей базой данных mysql_select_db('test', $link) or die ('Не могу выбрать БД'); Далее необходимо создать запрос. Это достаточно просто сделать, смотрите далее
Code $query = "INSERT INTO notebook VALUES(NULL,'Asus F5RL','25000')"; Давайте разберем то, что мы присвоили переменной $query. Транскрипция запроса выглядит следующим образом: $query = «INSERT(ВСТАВИТЬ) INTO (КУДА/В) ‘notebook’ VALUES()ЗНАЧЕНИЯ(Значение 1го поля,значение 2го поля,значение 3го поля)»; Обратите внимание на первое значение в скобках после VALUES. Мы указали тип переменной NULL, это значит что в это поле ничего записываться не будет. Вот так просто мы разобрали с вами запрос, что делать дальше?! Далее есть функция, которая отвечает за выполнение запроса, и возвращает результат. Это функция
Code $result = mysql_query($query); if($result) {echo "Даные внесены в базу данных";} else {echo "Ошибка, данные не были внесены в БД";} mysql_close($link); ?> В нашем случае переменная $result будет содержать результат данного запроса. В конце мы добавим простое условие, которое укажет нам об успешном или неуспешном выполнении запроса. Чтение БД Чтобы извлечь данные из базы, нам необходимо составить другой запрос, но прежде чем это сделать запишите в вашу таблицу несколько разных значений, пусть это будут разные модели ноутбуков с разными ценниками. Для начала сделаем выборку всех ноутбуков с ценниками и выведем их в браузер. Для этого составляем следующий запрос:
Code $query = "SELECT * FROM notebook"; десь все достаточно просто:
Code $query = «SELECT(ВЫБРАТЬ) *(ЗВЕЗДОЧКА ОЗНАЧАЕТ ВЫБРАТЬ ВСЁ) FROM(ОТКУДА) notebook»; Т.е. выбираем все столбцы из таблицы ноутбук. Далее осуществляем запрос:
Code $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 вставить условие
Code if($r[price] >=30000) {echo "$r[model] - $r[price]";} Такое условие будет обрабатывать уже полученные данные из базы, но можно пойти другим путем – создать условие при запросе к базе. Предыдущий фрагмент кода остается без изменений, меняется лишь только запрос:
Code $query = "SELECT * FROM notebook WHERE price>30000"; Транскрипция к запросу
Code $query = «ВЫБРАТЬ ВСЁ ИЗ notebook ГДЕ price>30000″;
Code $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. Добавим её в наш скрипт и получим к общему списку товаров их количество:
Code $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. Чтобы нам изменить данные в таблице необходимо составить следующий запрос:
Code $query = "UPDATE notebook SET price=52000 WHERE id=3"; Сделаю транскрипцию запроса:
Code $query = «ИЗМЕНИТЬ notebook УСТАНОВИТЬ price=52000 ГДЕ id=3″; Заметьте, что в этом запросе мы отталкивались от идентификатора товара:
Code $result = mysql_query($query); if($result) {echo "Данные изменены";} else {echo "Ошибка, данные не были изменены";} mysql_close($link); ?>
Сообщение # 1 написано 17.11.2010 в 16:37
|
| |||
| |||