Создание сайтов
Главная
Статьй
Скрипты
Шаблоны
Софт для раскрутки
Форум
Услуги
Вход на сайт
Логин
Пароль
 
Популярные статьи

Опрос сайта

Отличный
Не очень
Пойдет
Не понравился
Не скажу


Блок Он-лайн
Сейчас на сайте:
Пользователей: 0
Отсутствуют.

Роботов: 0
Отсутствуют.

Гостей: 3
Всех: 3

Создание сайтов » Cтатьй » MySQL - это просто!


MySQL - это просто! Cтатьй
Сначала ответим на вопрос - что такое MySQL? Это База Данных (БД), в которой структурировано хранятся данные. Следует второй вопрос - зачем отказываться от простых и удобных файлов к сложной БД? Потому что файлы, генерируемые каким либо скриптом на основе файловой БД (гостевые книги, CMS, форумы), постепенно начинают увеличиваться в размере, а так же их количество неуклонно растет. Поиск сильно затруднен. После преодоления некоторого порога (1000, 10000 файлов..) скрипт начинает жутко тормозить, и приходится подолгу ждать, когда он закончит свою работу. БД лишены этих недостатков - даже если в таблице будет миллион записей, поиск среди них будет идти доли секунды. Так уж они устроены, чтобы манипулировать огромным количеством данных. Но тут и возникает вопрос - а как работать с БД, в данном случае с MySQL? Эта статья как раз об этом.

Подключение к серверу.
Серверу MySQL, чтобы подключиться к нему, нужно передать 4 параметра:

* Хост. Это серовер, на котором расположен сервер MySQL. В абсолютном большинстве хост равен "localhost".
* Имя пользователя. Имя пользователя, который может работать с этой таблицей. На локальных компьютерах по дефолту поставлен "root". На хостинге - в зависимости от вас.
* Пароль. Пароль выбранного пользователя. По умолчания равен пустой строке - "".
* Имя Базы данных. Имя БД, как вы ее назвали. По умолчанию - "test".


Подключаться к серверу нужно с помощи команды:

$msconnect=mysql_connect("Хост", "Пользователь", "Пароль");


Выбирать конкретную Базу данных:

mysql_select_db("Имя базы данных", $msconnect);


Закрыть подключение нужно командой:

mysql_close($msconnect);


И соответственно полный пример подключения, выбирание нужной таблицы и закрытие подключеиния:

<?
$mshost = "localhost"; // Хост
$msuser = "root"; // Имя пользователя
$mspassword = ""; // Пароль
$msname = "test"; // Имя базы данных

$msconnect = mysql_connect($mshost, $msuser, $mspassword);

mysql_select_db($msname, $msconnect);

mysql_close($msconnect);
?>


Создание таблиц. Заполнение информацией БД
Вот мы подключились к серверу MySQL и выбрали БД. Что дальше? Дальше нужно создать новую таблицу. Управления БД в MySQL управляется с помощью специального языка запросов SQL. Поначалу он кажется страшным, непонятным и сложным, но через некоторое время при активной работе с БД вы сможете легко читать самые сложные с виду SQL-запросы (сам так же путался в начале..). Начнем.

Передача SQL запроса БД. Для этого существует единственная команда:


mysql_query("SQL-запрос", "подключенная БД");


Попробуем создать таблицу. Для этого передадим серверу такой SQL запрос:

mysql_query("CREATE TABLE имя_таблицы ( поле1 типполя1,
поле2 типполя2, поле3 типполя3)","подключенная БД");


Можно создавать сколько угодно полей. Заместо ТипПоля1 пишется:

* INT - целые числа
* TEXT - текстовая информация

Это 2 основных типа поля. На самом деле их очень много, но перечислять их - займет лишком много места. Итак, разобрались с созданием таблиц. Пример использования:

mysql_query("CREATE TABLE test_zero ( num INT, title TEXT,
text TEXT)",$msconnect);


Добавление информации в БД
Для этого существует та же команда, только другой SQL-запрос:


mysql_query("INSERT INTO название_таблицы VALUES ('что засунуть в поле1',
'еще что то в поле2','и напоследок в поле3')", "подключенная БД");


Думаю, здесь никаких сложностей не возникнет. Единственное, значения поля с типом TEXT вводить в одинарных кавычках. И, как всегда, пример:


mysql_query("INSERT INTO test_zero VALUES (1, 'Заголовок статьи',
'Текст статьи')", $msconnect);


Изменение информации в БД
Для этого используется такая команда:


mysql_query("UPDATE название_таблицы SET(поле1='значение1', поле2='значение2')
WHERE выражение", "подключенная БД");


Такой командой мы обновляем записи, указанные в скобках, а данной таблице, если они подходят по какому либо условию (WHERE ...). Это мы рассмотри чуть позже. Сейчас - пример:

mysql_query("UPDATE test_zero SET(num='2', title='Заголовок 2')
WHERE num=1", $msconnect);


Теперь полностью - подключение, создание таблицы, заполнение информации, ее обновление и закрытие подключения:

<?
$mshost = "localhost"; // Хост
$msuser = "root"; // Имя пользователя
$mspassword = ""; // Пароль
$msname = "test"; // Имя базы данных

$msconnect = mysql_connect($mshost, $msuser, $mspassword);

mysql_query("CREATE TABLE test_zero ( num INT, title TEXT,
text TEXT)",$msconnect); mysql_select_db($msname, $msconnect);

mysql_query("INSERT INTO test_zero VALUES (1, 'Заголовок статьи',
'Текст статьи')", $msconnect);

mysql_query("UPDATE test_zero SET(num='2', title='Заголовок 2')
WHERE num=1", $msconnect); mysql_close($msconnect);
?>



В итоге у нас появится новая таблица test_zero, в которой будет одна запись.



Получение информации из БД.
Допустим, у нас большущая БД, в которой хранятся сотни записей. Как же эти записи получить? Очень просто:


$res=mysql_query("SELECT поле1, поле2, поле3 FROM имя_таблицы");
while($row=mysql_fetch_array($res))
{
$поле1=$row[поле1];
$поле2=$row[поле2];
$поле3=$row[поле3];
}



Командой SELECT мы получаем записи таблицы. Заместо строк "поле1, поле2, поле3" может стоять знак "*", который означает, что нужно читать все поля записей. Можно выбрать только одно поле, которое нужно. Это ускоряет работу БД. Что делает цикл while? Он означает, что пока в таблице есть записи, он будет помещать значения их полей в массив с помощью функции "mysql_fetch_array", а как только записи кончатся, цикл остановится. Чтобы получить из массива данные, можно воспользоваться способом, который я указал в примере. Внутри цикла можно генерировать, к примеру, статьи, вытаскивая данные из БД. Вот пример:


$res=mysql_query("SELECT * FROM test_zero");
while($row=mysql_fetch_array($res))
{
$num=$row[num];
$title=$row[title];
$text=$row[text];

echo "($num) - $title <br><p align=justify>$text";
}




Условия получения информации из БД
Когда в таблице сотни записей, получать все не всегда целесообразно. Для этого вводят какое либо условие:



$res=mysql_query("SELECT * FROM имя_таблицы WHERE поле1 знак 'значение'
ОПЕРАТОР поле2 знак 'значение'");



Рассмотрим поподробнее строку "поле1 знак 'значение'". Поле1 - название поля, например "title". Знак - логическое выражение, принимает значения:

* = - равно
* > - больше
* < - меньше
* != - не равно

Их так же достаточно много, это основные.

ОПЕРАТОР - логический оператор:

* AND - логическое "и"
* OR - логическое "или"

Это так же основные.

Пример вытаскивания из таблицы записей, номер которых больше 10:


$res=mysql_query("SELECT * FROM test_zero WHERE num > 10");


И, так сказать, итоговый пример применения БД:


<?
$mshost = "localhost"; // Хост
$msuser = "root"; // Имя пользователя
$mspassword = ""; // Пароль
$msname = "test"; // Имя базы данных

$msconnect = mysql_connect($mshost, $msuser, $mspassword);

mysql_query("CREATE TABLE test_zero ( num INT, title TEXT,
text TEXT)",$msconnect); mysql_select_db($msname, $msconnect);

mysql_query("INSERT INTO test_zero VALUES (1, 'Заголовок статьи',
'Текст статьи')", $msconnect);

mysql_query("UPDATE test_zero SET(num='2', title='Заголовок 2')
WHERE num=1", $msconnect); mysql_close($msconnect);

$res=mysql_query("SELECT * FROM test_zero");
while($row=mysql_fetch_array($res))
{
$num=$row[num];
$title=$row[title];
$text=$row[text];

echo "($num) - $title <br><p align=justify>$text";
}
?>


Ну вот и все! Конечно, это очень простой пример, но позволит вам научится простейшие работе с БД. На основе полученных знаний можно сделать гостевую книгу, скрипт выводящий новости, систему статистики и т.д.
  • Горизонтально меню с помощью CSS.
  • Что такое HTTP
  • Как оптимизировать код для поисковиков?
  • Как выбирать платный хостинг?
  • Баннерная реклама
  •  
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
    #1 написал: NoNameZ (5 сентября 2007 22:33)


    Публикаций: 0
    Комментариев: 0

    Супер,больше бы такого,я как раз начинаю изучать это.


    #2 написал: Ice (24 марта 2008 06:25)


    Публикаций: 0
    Комментариев: 1

    Тоже помогло. Начинаю переходить на БД, но нигде не могу найти норм. книгу(


    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


    © Prosaity.info 2007 All rights reserved. Design by Zuven Design.