<?xml version="1.0" encoding="utf-8"?>
<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink">
<stylesheet type="text/css">
.body{font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
}
.p{margin:0.5em 0 0 0.3em; padding:0.2em; text-align:justify;
}
</stylesheet>
<description>
<title-info>
<genre>sf_history</genre>
<author>
<first-name>Имя автора</first-name>
<last-name>Фамилия автора</last-name>
</author>
<book-title>Название книги</book-title>
<annotation></annotation>
<date>Дата</date>
<lang>ru</lang>
</title-info>
<document-info>
<author><nickname></nickname>
</author>
<program-used>Lib converter jcms</program-used>
<date value=""></date>
<src-url>http://johncms.com</src-url>
<id></id>
<version>1.0</version>
<history><p>book</p></history>
</document-info>
</description>
<body>
<title><p>MySQL - это просто!</p>
</title>
<section><p>Сначала ответим на вопрос - что такое MySQL? Это База Данных (БД), в которой структурировано хранятся данные. Следует второй вопрос - зачем отказываться от простых и удобных файлов к сложной БД? Потому что файлы, генерируемые каким либо скриптом на основе файловой БД (гостевые книги, CMS, форумы), постепенно начинают увеличиваться в размере, а так же их количество неуклонно растет. Поиск сильно затруднен. После преодоления некоторого порога (1000, 10000 файлов..) скрипт начинает жутко тормозить, и приходится подолгу ждать, когда он закончит свою работу. БД лишены этих недостатков - даже если в таблице будет миллион записей, поиск среди них будет идти доли секунды. Так уж они устроены, чтобы манипулировать огромным количеством данных. Но тут и возникает вопрос - а как работать с БД, в данном случае с MySQL? Эта статья как раз об этом. </p>
<p></p>
<p>Подключение к серверу.</p>
<p>Серверу MySQL, чтобы подключиться к нему, нужно передать 4 параметра:</p>
<p>Хост. Это серовер, на котором расположен сервер MySQL. В абсолютном большинстве хост равен "localhost". </p>
<p>Имя пользователя. Имя пользователя, который может работать с этой таблицей. На локальных компьютерах по дефолту поставлен "root". На хостинге - в зависимости от вас. </p>
<p>Пароль. Пароль выбранного пользователя. По умолчания равен пустой строке - "". </p>
<p>Имя Базы данных. Имя БД, как вы ее назвали. По умолчанию - "test".</p>
<p></p>
<p>Подключаться к серверу нужно с помощи команды:</p>
<p></p>
<p>$msconnect=mysql_connect("Хост", "Пользователь", "Пароль"); </p>
<p></p>
<p>Выбирать конкретную Базу данных:</p>
<p></p>
<p>mysql_select_db("Имя базы данных", $msconnect); </p>
<p></p>
<p>Закрыть подключение нужно командой:</p>
<p></p>
<p>mysql_close($msconnect); </p>
<p></p>
<p>И соответственно полный пример подключения, выбирание нужной таблицы и закрытие подключеиния: </p>
<p></p>
<p><?</p>
<p>$mshost = "localhost"; // Хост</p>
<p>$msuser = "root"; // Имя пользователя</p>
<p>$mspassword = ""; // Пароль</p>
<p>$msname = "test"; // Имя базы данных</p>
<p></p>
<p>$msconnect = mysql_connect($mshost, $msuser, $mspassword);</p>
<p></p>
<p>mysql_select_db($msname, $msconnect);</p>
<p></p>
<p>mysql_close($msconnect);</p>
<p>?> </p>
<p></p>
<p></p>
<p>Создание таблиц. Заполнение информацией БД</p>
<p>Вот мы подключились к серверу MySQL и выбрали БД. Что дальше? Дальше нужно создать новую таблицу. Управления БД в MySQL управляется с помощью специального языка запросов SQL. Поначалу он кажется страшным, непонятным и сложным, но через некоторое время при активной работе с БД вы сможете легко читать самые сложные с виду SQL-запросы (сам так же путался в начале..). Начнем. </p>
<p></p>
<p>Передача SQL запроса БД. Для этого существует единственная команда: </p>
<p></p>
<p>mysql_query("SQL-запрос", "подключенная БД"); </p>
<p></p>
<p>Попробуем создать таблицу. Для этого передадим серверу такой SQL запрос:</p>
<p></p>
<p>mysql_query("CREATE TABLE имя_таблицы ( поле1 типполя1, </p>
<p>поле2 типполя2, поле3 типполя3)","подключенная БД"); </p>
<p></p>
<p>Можно создавать сколько угодно полей. Заместо ТипПоля1 пишется: </p>
<p>INT - целые числа </p>
<p>TEXT - текстовая информация </p>
<p>Это 2 основных типа поля. На самом деле их очень много, но перечислять их - займет лишком много места. Итак, разобрались с созданием таблиц. Пример использования: </p>
<p></p>
<p></p>
<p>mysql_query("CREATE TABLE test_zero ( num INT, title TEXT,</p>
<p>text TEXT)",$msconnect); </p>
<p></p>
<p></p>
<p></p>
<p>Добавление информации в БД</p>
<p>Для этого существует та же команда, только другой SQL-запрос: </p>
<p></p>
<p></p>
<p>mysql_query("INSERT INTO название_таблицы VALUES ('что засунуть в поле1',</p>
<p>'еще что то в поле2','и напоследок в поле3')", "подключенная БД"); </p>
<p></p>
<p></p>
<p>Думаю, здесь никаких сложностей не возникнет. Единственное, значения поля с типом TEXT вводить в одинарных кавычках. И, как всегда, пример: </p>
<p></p>
<p></p>
<p>mysql_query("INSERT INTO test_zero VALUES (1, 'Заголовок статьи',</p>
<p>'Текст статьи')", $msconnect); </p>
<p></p>
<p></p>
<p>Изменение информации в БД</p>
<p>Для этого используется такая команда: </p>
<p></p>
<p></p>
<p>mysql_query("UPDATE название_таблицы SET(поле1='значение1', поле2='значение2') </p>
<p>WHERE выражение", "подключенная БД"); </p>
<p></p>
<p></p>
<p>Такой командой мы обновляем записи, указанные в скобках, а данной таблице, если они подходят по какому либо условию (WHERE ...). Это мы рассмотри чуть позже. Сейчас - пример: </p>
<p></p>
<p></p>
<p>mysql_query("UPDATE test_zero SET(num='2', title='Заголовок 2') </p>
<p>WHERE num=1", $msconnect); </p>
<p></p>
<p></p>
<p>Теперь полностью - подключение, создание таблицы, заполнение информации, ее обновление и закрытие подключения: </p>
<p><?</p>
<p>$mshost = "localhost"; // Хост</p>
<p>$msuser = "root"; // Имя пользователя</p>
<p>$mspassword = ""; // Пароль</p>
<p>$msname = "test"; // Имя базы данных</p>
<p></p>
<p>$msconnect = mysql_connect($mshost, $msuser, $mspassword);</p>
<p></p>
<p>mysql_query("CREATE TABLE test_zero ( num INT, title TEXT,</p>
<p>text TEXT)",$msconnect); mysql_select_db($msname, $msconnect);</p>
<p></p>
<p>mysql_query("INSERT INTO test_zero VALUES (1, 'Заголовок статьи',</p>
<p>'Текст статьи')", $msconnect);</p>
<p></p>
<p>mysql_query("UPDATE test_zero SET(num='2', title='Заголовок 2') </p>
<p>WHERE num=1", $msconnect); mysql_close($msconnect);</p>
<p>?> </p>
<p></p>
<p></p>
<p>В итоге у нас появится новая таблица test_zero, в которой будет одна запись. </p>
<p></p>
<p></p>
<p>Получение информации из БД.</p>
<p>Допустим, у нас большущая БД, в которой хранятся сотни записей. Как же эти записи получить? Очень просто: </p>
<p></p>
<p></p>
<p>$res=mysql_query("SELECT поле1, поле2, поле3 FROM имя_таблицы");</p>
<p>while($row=mysql_fetch_array($res))</p>
<p>{</p>
<p>$поле1=$row[поле1];</p>
<p>$поле2=$row[поле2];</p>
<p>$поле3=$row[поле3];</p>
<p>}</p>
<p></p>
<p></p>
<p>Командой SELECT мы получаем записи таблицы. Заместо строк "поле1, поле2, поле3" может стоять знак "*", который означает, что нужно читать все поля записей. Можно выбрать только одно поле, которое нужно. Это ускоряет работу БД. Что делает цикл while? Он означает, что пока в таблице есть записи, он будет помещать значения их полей в массив с помощью функции "mysql_fetch_array", а как только записи кончатся, цикл остановится. Чтобы получить из массива данные, можно воспользоваться способом, который я указал в примере. Внутри цикла можно генерировать, к примеру, статьи, вытаскивая данные из БД. Вот пример: </p>
<p></p>
<p></p>
<p>$res=mysql_query("SELECT * FROM test_zero");</p>
<p>while($row=mysql_fetch_array($res))</p>
<p>{</p>
<p>$num=$row[num];</p>
<p>$title=$row[title];</p>
<p>$text=$row[text];</p>
<p></p>
<p>echo "($num) - $title <br><p align=justify>$text";</p>
<p>}</p>
<p></p>
<p></p>
<p></p>
<p>Условия получения информации из БД</p>
<p>Когда в таблице сотни записей, получать все не всегда целесообразно. Для этого вводят какое либо условие: </p>
<p></p>
<p></p>
<p>$res=mysql_query("SELECT * FROM имя_таблицы WHERE поле1 знак 'значение' </p>
<p>ОПЕРАТОР поле2 знак 'значение'"); </p>
<p></p>
<p></p>
<p>Рассмотрим поподробнее строку "поле1 знак 'значение'". Поле1 - название поля, например "title". Знак - логическое выражение, принимает значения: </p>
<p></p>
<p>= - равно </p>
<p>> - больше </p>
<p>< - меньше </p>
<p>!= - не равно</p>
<p> </p>
<p>Их так же достаточно много, это основные.</p>
<p></p>
<p>ОПЕРАТОР - логический оператор: </p>
<p>AND - логическое "и" </p>
<p>OR - логическое "или" </p>
<p>Это так же основные.</p>
<p></p>
<p>Пример вытаскивания из таблицы записей, номер которых больше 10: </p>
<p></p>
<p></p>
<p>$res=mysql_query("SELECT * FROM test_zero WHERE num > 10"); </p>
<p></p>
<p></p>
<p>И, так сказать, итоговый пример применения БД:</p>
<p></p>
<p><?</p>
<p>$mshost = "localhost"; // Хост</p>
<p>$msuser = "root"; // Имя пользователя</p>
<p>$mspassword = ""; // Пароль</p>
<p>$msname = "test"; // Имя базы данных</p>
<p></p>
<p>$msconnect = mysql_connect($mshost, $msuser, $mspassword);</p>
<p></p>
<p>mysql_query("CREATE TABLE test_zero ( num INT, title TEXT,</p>
<p>text TEXT)",$msconnect); mysql_select_db($msname, $msconnect);</p>
<p></p>
<p>mysql_query("INSERT INTO test_zero VALUES (1, 'Заголовок статьи',</p>
<p>'Текст статьи')", $msconnect);</p>
<p></p>
<p>mysql_query("UPDATE test_zero SET(num='2', title='Заголовок 2') </p>
<p>WHERE num=1", $msconnect); mysql_close($msconnect);</p>
<p></p>
<p>$res=mysql_query("SELECT * FROM test_zero");</p>
<p>while($row=mysql_fetch_array($res))</p>
<p>{</p>
<p>$num=$row[num];</p>
<p>$title=$row[title];</p>
<p>$text=$row[text];</p>
<p></p>
<p>echo "($num) - $title <br><p align=justify>$text";</p>
<p>}</p>
<p>?> </p>
<p></p>
<p></p>
<p>Ну вот и все! Конечно, это очень простой пример, но позволит вам научится простейшие работе с БД. На основе полученных знаний можно сделать гостевую книгу, скрипт выводящий новости, систему статистики и т.д.</p>
</section>
</body>
</FictionBook>