Здравствуйте, уважаемые посетители нашего форума.
Сегоня, прочитав этот пост, вы научитесь использовать базы данных, записывать в них данные и считывать с них же.
Часто новички сталкиваясь с этим делом пугаются, но не все так страшно, на самом деле это проще, чем казалось бы.
Итак, начнем.
Я приведу пример записи текста в бд, мета тегов, автора и пр. В общем, собрав полный код из урока вы сможете собрать некое подобие микроблога, заодно разобраться, где, что, куда, как и почему.
Для начала нам нужна форма добавления данных, ибо откуда же они будут идти?

Естественно, любая форма начинается с тега FORM, где определяется метод (METHOD) передачи данных, в нашем случае это POST-запрос и адрес, куда отправляется наша информация, заполненная на странице (ACTION), в файл – обработчик add_text.php. Метод POST позволяет передавать большие объёмы информации в незаметном для пользователя виде, в то время как метод GET напротив, передаёт существенно меньше информации, которую можно отследить в адресной строке браузера. Однако, метод GET позволяет пользователю делать закладки на данную страницу.
Следом идут элементы формы в теге input, с указанием типа содержимого, именами элементов, их размером и значением. Требуют объяснения два элемента: textarea – текстовое поле, куда можно вносить большие объёмы текста и его размеры задаются двумя параметрами:
ROWS = "20" - это число строк в текстовом поле и COLS ="50" - число знаков в строке и элемент submit (кнопка), который и выглядит как кнопка, а значение будет выведено в качестве надписи на ней.
Запустив файл, который мы создали на этом этапе мы увидим нашу форму,, заполнив ее, можно тыкнуть на кнопку отправки, но, увы, она не сохранится, ведь это только оболочка и ничего более.

Чутка теории, читать обязательно:
После нажатия кнопки, образуются глобальные переменные $_POST[\\\'здесь имя переменной\\\']. В них в виде массива хранятся все наши данные, которые мы внесли в форму, а именно: в переменной $_POST[\\\'title\\\'] хранятся данные (значения) поля title, т.е. имя поля даёт имя переменной, в переменной $_POST[\\\'meta_k\\\'] хранятся данные (значения) поля meta_k и т.д. Почему я пишу значения? В таблице хранятся данные не одной страницы вашего сайта, а много, поэтому строк тоже много, значений поля много и по тому – массив. Поле page_name нам необходимо, для того чтобы, указав его при выборке данных из таблицы, мы получили именно ту страницу, которую нам надо.

В PHP используются ассоциативные массивы, они представляют собой множество пар ключ – значение. Ключ может быть числовым или строкой символов. В нашем случае мы имеем массив в виде таблицы, где числовыми ключами являются значения id, а строковыми – имена полей (столбцов) таблицы. И то и другое в принципе является переменной. Так значение id зависит от номера записи в таблице, а значение поля таблицы зависит и от номера записи, и от названия поля.

Записать массив можно так:
$my_array = array(\\\'id\\\' => \\\'1\\\', \\\'имя\\\' => \\\'Иван\\\', \\\'отчество\\\' => \\\'Петрович\\\', \\\'фамилия\\\' => \\\'Сидоров\\\' );

Таким образом мы сформировали пары ключ – значение. Если массив записать в переменную $id1=array( ), то можно обратиться к нему следующим образом:
$id1 = [\\\'фамилия\\\'];
$id1 = [\\\'имя\\\'];
$id1 = [\\\'отчество\\\'];

Обратимся к массиву $id1 с ключом \\\'фамилия\\\' и выведем в браузер при помощи конструкции echo -
<? php echo $id1[\\\'фамилия\\\']; ?> , получим значение Сидоров.

Далее.

Обработчик формы.
Прежде, чем писать обработчик, напишем интересный файл, который будет связывать наше детище с бд в обе стороны:

Обзовем по традиции DB.php

Итак, вот он, готов наш "мост". Как я уже говорил, он свяжет на с нашей БД.
Его будем подключать, когда будет требоваться соединение с бд.

Теперь, наконец, код обработчика формы:

Если вам не нужна проверка на заполнение всех полей просто закомментируйте, либо удалите строку :
if (isset($title, $meta_k, $meta_d, $text, $date, $author, $page_name))

Работает этот файл следующим образом. Сначала проверяем, не пустые ли переменные $_POST[ ] и, если они существуют и не пустые, то обрабатываем их встроенной в PHP функцией mysql_real_escape_string(), эта функция экранирует специальные символы строки, переданной ей в качестве аргумента, принимая во внимание кодировку соединения, таким образом, что результат можно безопасно использовать в SQL-запросе в mysql_query(), очень полезная функция.
Далее все помещается в нашу БД.

Теперь извлекаем данные из БД.

Напишем код для вывода данных на главную страницу сайта – index.php (у меня это будет index1.php). Обратите внимание, что я использовал в качестве имени главной страницы сайта page_name = \\\'first\\\', а не index. Дело в том, что, на мой взгляд, удобнее хранить информацию в БД не привязанную к какой-либо конкретной странице из навигации. Возможно, вам захочется поменять содержание индексной страницы на новое, а старое содержание оставить для другой тоже важной страницы. В этом случае вам надо всего лишь поменять название страницы в запросе и в индекс вытащить новую страницу, а старую поместить в нужное вам место.

Осталось только в файле index.php выставить верные ссылки навигации, а так же создать файлы дизайна:)

Теги: php, учимся, записывать, и, извлекать, данные