![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Проектування бази даних
Перш ніж перейти до частини PHP, потрібно спочатку поглянути на організацію даних чату в базі даних MySQL. Для нашого скрипта ми використовуємо дві таблиці. У таблиці webchat_users зберігається інформація про учасників чату. Таблиця має поля id, name, gravatar і last_activity. Поле name визначено як унікальне, таким чином запобігає використання імен, що дублюються в чаті. Іншою корисною властивістю поля з унікальним індексом є те, що запит на вставку даних завершиться з помилкою і властивість inserted_rows об'єкта MySQLi буде встановлено в значення 0, якщо спробувати вставити дублюючі рядки. У класі PHP Chat дане властивість буде активно використовуватися. Поле last_activity містить значення часу. Значення оновлюється кожні 15 секунд для кожного користувача. Поле також визначено як індекс, що дозволяє швидко видаляти неактивних користувачів (значення в поле last_activity більше 15 означає, що користувач паче не переглядає вікно чату). Таблиця webchat_lines містить записи в чаті. Зауважте, що зберігаємо ім'я автора і gravatar тут теж. Таке дублювання дозволяє відмовитися від використання витратної директиви join при запиті останніх записів - найбільш часто використовуваних в додатку. Визначення таблиць є в файлі tables.sql. Можна використовувати текст запитів для створення таблиць. Також, при установці чату на хост, потрібно поміняти установки в ajax.php на дані для з'єднання з базою MySQL. Клас DB - менеджер бази даних. Конструктор оголошений як private, таким чином, об'єкт не може бути створений поза межами класу, і ініціалізація можлива тільки з статичного методу init (). Він бере масив з параметрами з'єднання з MySQL і створює екземпляр класу, який міститься в статичної змінної self:: $ instance. Таким чином, забезпечується існування єдиного з'єднання з базою даних в конкретний момент часу. Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение Інша частина класу реалізує комунікацію з базою даних, в основі якої лежить статичний метод query (). Це простий базовий клас. Його основне призначення - визначити конструктор, який отримує масив параметрів, але зберігає тільки ті, які визначені в класі. Клас ChatLine є похідним класом від ChatBase. Об'єкт даного класу можна легко створити за допомогою передачі конструктору масиву з текстом, ім'ям автора та елементом gravatar. Властивість класу gravatar містить хеш md5 email адреси. Воно потрібне для отримання користувацького аватара, відповідного emailадресою, з сайту gravatar.com. Даний клас також визначає метод save, який зберігає об'єкт в базі даних. Так як метод повертає об'єкт MySQLi, що міститься в класі DB, можете перевірити успішність завершення операції за допомогою властивості affected_rows. Клас має властивості name і gravatar (зверніть увагу на модифікатор доступу protected - властивості доступні в класі ChatBase, і ми можемо встановлювати їх значення в конструкторі). У класі визначено метод update (), який оновлює поле last_activity значенням поточного часу. Таким чином показується, що користувач тримає вікно з чатом відритим і його треба враховувати як автора в режимі онлайн. Цей код виконує всю роботу. В операторі switch в файлі ajax.php вибиралися дії, які відповідали методам даного класу. Кожен з цих методів повертає масив, який потім конвертується в об'єкт JSON за допомогою функції json_encode () (це відбувається внизу в файлі ajax.php). Коли користувач входить в систему, його ім'я і gravatar зберігаються як елементи масиву $ _SESSION і стають доступні в наступних запитах. jQuery відправляє запити getUsers () кожні 15 секунд. Використовуємо цей факт, щоб видалити репліки, які старше 5 хвилин і неактивних користувачів з бази даних. Потенційно можна було б видаляти дані записи в getChats, але цей запит надходить кожну секунду і додаткове навантаження може вплинути на продуктивність програми. У методі getChats () використовується функція gmdate виведення часу в форматі GMT. У клієнтської частини ми використовуємо годину і хвилину для установки в об'єкті JavaScript, а в результаті час відображається відповідно до часового поясу користувача. Спочатку треба створити базу даних за допомогою MS SQL Server 2005/2008. Для простоти використовується наступна база даних: Користувач: Містить інформацію про користувача. Сервис онлайн-записи на собственном Telegram-боте
Попробуйте сервис онлайн-записи VisitTime на основе вашего собственного Telegram-бота:— Разгрузит мастера, специалиста или компанию; — Позволит гибко управлять расписанием и загрузкой; — Разошлет оповещения о новых услугах или акциях; — Позволит принять оплату на карту/кошелек/счет; — Позволит записываться на групповые и персональные посещения; — Поможет получить от клиента отзывы о визите к вам; — Включает в себя сервис чаевых. Для новых пользователей первый месяц бесплатно. Зарегистрироваться в сервисе Учасники: буде зберігати користувачів, які увійшли / спілкуються в розділі чату.
|