Работа с MySQL в PHP: с чего начать?
Многие обладатели домашних страничек рано или поздно начинают интересоваться устройством крупных новостных порталов и контент-проектов - не вручную же они ве эти страницы делают! А как тогда? Данная статья поможет начинающему веб-мастеру начать создание проектов с применением PHP-MySQL.
Один из самых часто задаваемых вопросов начинающих веб-мастеров: как начать работать с базами данных MySQL, используюя скрипты на PHP? Это неудивительно, потому что эра статических HTML-сайтов давно прошла (на "Народе" это любимое народом дело процветает :) и теперь более-менее грамотные начинающие веб-мастера осознали удобство и комфорт создания и поддержания контент проектов на основе PHP-MySQL. Скептики и консерваторы будут утверждать, что работать с файлами проще, что легче наверстать страничку вручную, чем тратить время на отладку и написание скриптов. Не слушайте их - это абсурд! Как говорится "Лучше день потерять потом за 5 минут долететь!". Ну допустим, на подготовку и создание динамической версии сайта на основе PHP-MySQL уходит раза в два-три больше времени, а то и больше, но зато поддержка проекта в будущем покажется вам приятным и простым занятием (конечно, настолько, насколько серьёзно вы к этому подойдёте). А почему загибаются казалось бы хорошие статические сайты? Причина всему - рутинные операци по обновлению сайта. Если на PHP-MySQL сайте есть возможность добавлять статьи через форму (копировать, вставить, отправить), то для добавления статьи на статический сайт нужно намного больше более сложных операций:
- Сверстать новую страничку на основе существующего шаблона.
- Проверить форматирование, ссылки, картинки, всё ли на месте.
- Добавить ссылку на новую страницу где-то ещё (а то и на несколько!), например в раздел "Статьи".
- Проверить, как всё это работает целиком.
- Соединиться с сервером FTP.
- Закачать все обновлённые страницы на сервер.
- Проверить, всё ли работает в онлайне.
Вот почему многие бросают любимое занятие. Ну есть конечно некоторые усердные личности, которые годами поддерживают такие сайты. А есть и умельцы, которые за пару месяцев разработают БД и PHP-движок и будут жить методом "копировать, вставить, отправить"!
Надеюсь, я привёл достаточные аргументы в пользу динамического сайта. И вот Вася Пупкин решил опробовать себя в этом нелёгком деле, но тут возникает несколько резонных вопросов:
- Есть ли у меня PHP?
- Есть ли у меня MySQL?
- Есть ли у меня вообще сайт? (шутка :)
Итак, для создания динамического сайта нам понадобится хостинг с поддержкой PHP и MySQL. Ну здесь я вам не советчик - если вы создаёте серьёзный проект, то лучше немного заплатить, но получить всё и сразу - тогда вам сюда http://hcenter.info. Из бесплатных хостингов PHP и MySQL доступны кажется на Агаве, но я могу ошибаться - тогда поищите в Яндексе "бесплатный хостинг с поддержкой PHP MySQL" или что-то в этом роде.
Пропускаем момент регистрации на хостинге. Теперь вам должны выслать по email письмо с логинами и паролями. Внимательно прочитайте инструкции, посмотрите FAQ на сайте хостинга, если что-то непонятно.
Во-первых, вам необходимо создать новую базу данных на MySQL-сервере. Это очень легко делается при помощи инструментов типа phpMyAdmin или любого графического клиента MySQL - SQLyog, MySQL-Front. На большинстве хостингов это делается при помощи панели управления хостингом - тут я вам не помощник, смотрите сами. Выполните функцию создания новой базы, назвав её например "test".
При помощи одной из указанных выше программ выполните представленный ниже SQL-дамп:
# # Table structure for table `links` # # Creation: Aug 12, 2003 at 05:11 PM # Last update: Aug 12, 2003 at 05:28 PM # CREATE TABLE `links` ( `id` int(10) unsigned NOT NULL auto_increment, `url` varchar(100) NOT NULL default '', `description` varchar(100) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=6 ; # # Dumping data for table `links` # INSERT INTO `links` VALUES (1, 'http://www.programmingsite.co.uk', 'programming directory'); INSERT INTO `links` VALUES (2, 'http://www.beginnersphp.co.uk', 'PHP tutorials and code'); INSERT INTO `links` VALUES (3, 'http://asp.programmershelp.co.uk', 'ASP site with code and tutorials'); INSERT INTO `links` VALUES (4, 'http://javascript.programmershelp.co.uk', 'javascript site'); INSERT INTO `links` VALUES (5, 'http://software.programmingsite.co.uk', 'software directory');
Теперь вы можете написать и выполнить свои PHP-скрипты для операций с только что созданной базой данных. Следующий PHP-скрипт подключается с серверу MySQL, производит выборку данных и выводит содержимое таблицы "links" в виде обычной HTML-таблицы.
<?php //соединение с базой данных при помощи функции mysql_connect() //в аргументах функции укажите имя сервера, логин и пароль. $db = mysql_connect("сервер","логин","пароль"); //функция mysql_select_db() выбирает текущую //базу данных с именем "test" mysql_select_db("test" ,$db); //функция mysql_query() выполняет запрос на выборку данных //результирующий набор данных хранится в переменной $sql $sql = mysql_query("SELECT * FROM links" ,$db); //после получения данных начнём формирование HTML-таблицы echo ("<table border ='1'>"); //выводим строку заголовков echo ("<tr><td>Адрес</td><td>Описание</td></tr>"); //функция mysql_fetch_row() извлекает одну строку из результата //и сохраняет её в массиве $tablerows while ($tablerows = mysql_fetch_row($sql)) { //теперь в цикле для каждой полученной строки сделаем вывод //$tablerows[1] соответствует полю "url" //$tablerows[2] соответствует полю "description" echo("<tr><td><a href='$tablerows[1]'>$tablerows[1]</a></td><td>$tablerows[2]</td></tr> "); } echo "</table>"; //закрытие соединение (рекомендуется) mysql_close($db); ?>
Сохраните скрипт в файл под именем, например test.php и закачайте на FTP-сервер вашего сайта. Скрипт будет доступен например так: http://vasya.server.ru/test.php (ну или смотря куда вы его закачали). Если всё сделано правильно, скрипт отработает и выведет на экран содержимое БД в виде обычной таблицы.
Буду искренне рад, если эта статья стала для вас отправной точкой для создания динамического сайта!
Ссылки по теме
Оставить комментарий
Комментарии
Автору статьи спасибо.
Избесплатных cms ничего стоящего не видел... А разбирать чужой код не всегда просто :)
Спасибо за отзыв! Для таких как я и для таких как вы статья непременно бесполезна. Но поверьте, есть огромное количество людей, которые в поисках информации не знают с чего начать (не говоря о том, что искать толком не умеют). На написание статьи меня натолкнули именно просьбы всевозможных Вась Пупкиных научить их работать с PHP-MySQL. Анализ рунета показал, таких простых статей, как эта - очень мало. Загляните в любой программерский форум - больше половины вот таких вот вопросов. И если админ посчитал нужным опубликовать статью (да ещё и добавил ссылки на другие статьи в конце), то значит он со мной согласен и все вопросы к нему :))
З.Ы. - Вы несомненно крут в любом вопросе, касающемся программирования, вам даже не лень тратить время на ниписание глупых постов, тем более на транслите :) Лучше бы потратили время на конструктив.