Хотя если вы умеете работать с бд вы сами запросто сможете создать таблицы которые находятся в запросе. И так начнём…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php //Файл устанавливает подключение к базе данных function startup(){ //Настройки подключения к бд $hostname = 'localhost'; $username = 'root'; $password = ''; $dbname = 'test'; //Языковая настройка //setlocale(LC_ALL, 'ru_RU.CP1251'); На всякий случай оставлю!!! //Подключение к БД mysql_connect($hostname,$username,$password) or die('Связаться с базой не удалось!'); //mysql_query('SET NAMES cp1251'); На всякий случай! mysql_select_db($dbname) or die('Нет базы данных!');; //Открытие сессии //session_start(); //Сессию ставить не обязательно, но можно объединить } ?> |
Файл startup.php, устанавливает связь с бд. Тут я немного поиграл с сессией но она тут по сути не нужна. Хотя из этого файла её можно подключать. Строчки с предохранителями кодировки я тоже выключил. работаю с utf8 и вам советую.
Пароль на денвере оставляем пустым. Пользователь по умолчанию root.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php function send_message($name,$text){ $name = trim($name); //обрезаем имя и текст для проверки $text = trim($text); if($name == '' || $text == ''){ //Проверка на пустоту return; } $dt = date('Y-m-d H:i:s'); $sql = "INSERT INTO message (pr_date,pr_name,pr_text) VALUES ('$dt','$name','$text')"; /* Заметь тут имя переменных а вставляем в данные таблицы с префиксом */ $result = mysql_query($sql); if(!result){ die(mysql_error()); } } function get_messages(){ $sql = "SELECT * FROM message ORDER BY pr_date DESC"; $result = mysql_query($sql); if(!$result){ die (mysql_error()); } //Перегоняем данные в массив $n = mysql_num_rows($result); //В качестве параметра дескриптор, а на выходе количество строк $arr = array(); for($i = 0; $i < $n; $i++){ $row = mysql_fetch_assoc($result); //функция создаёт ассоциативный массив //var_dump($row); //Посмотреть на ассоциативный массив $arr[] = $row; //Пустые квадратные скобки это добавление в конец массива } return $arr; //Возвращаем наш двумерный массив } ?> |
model.php Файл с нашими работниками которые манипулируют данными. Занимаются вставкой и выводом данных из бд. Ну и примитивной проверкой. Для удобства перегоняем всё в пустой массив.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php //Подключение модулей include('startup.php'); include('model.php'); //Подготовка startup(); //Была отправка формы? if(!empty($_POST)){ send_message($_POST['name'], $_POST['text']); header('Location: index.php'); /* Если убрать эту строчку то вы дублируете запрос методом пост при перезагрузке. т.е. при перезагрузке страницы постоянно будут идти последние сообщения пользователя */ exit(); } $messages = get_messages(); ?> |
Index.php Перед хтмлом подключаем наши файлы. И запускаем функцию. Ставим редирект что бы не было дублирующих сообщений.
1 2 3 4 5 6 7 8 9 10 |
<?php foreach($messages as $m){ echo '<br /> <p> <i>"'.$m['pr_date'].'"-"'.$m['pr_name'].'"</i><br /> "'.$m['pr_text'].'" </p> <hr />'; } ?> |
В тело документа вставляем цикл foreach, помните мы перегоняли все данные в пустой массив. Теперь таким простым циклом мы эти данные выводим. Всё просто и чисто! Привыкаем к этой модели, она очень удобная!
Что должно быть в папке:
Скачать простой чат на php: Чат на php
| Категория: PHP
| Тэги: PHP / бд / ШП