Ответы пользователя по тегу MySQL
  • Как организовать базу данных приложения "чат с комнатами"?

    Я бы организовал общую таблицу для всех комнат, всех сообщений, всех пользователей и т.д. Для меня так более проще с точки зрения разделения данных и логики.
    Ответ написан
    2 комментария
  • Шифрование паролей, или как узнать контрольную сумму для сравнения?

    Рассмотрим логику авторизации на сайте.

    В бд хранится хэш-пароль(мд5 - 202cb962ac59075b964b07152d234b70). Когда человек хочет авторизоваться на сайте, он вводит свой нормальный пароль и логин. Тот пароль который он ввел(нормальный) - хэшируют в md5 и сравнивают с тем что в базе. Пример ниже.

    В базе есть:
    LOGIN — admin
    PASS — 4297f44b13955235245b2497399d7a93 (123123)

    Человек ввёл на сайте:
    LOGIN — admin
    PASS — test

    Переводим пароль который ввели в MD5(чтобы сравнивать) и получаем:
    $login = $_POST['login'];
    $pass = md5($_POST['pass']); // $_POST['pass']=test ==> $pass = 098f6bcd4621d373cade4e832627b4f6

    Отправляем запрос в базу:
    SELECT * FROM `users` WHERE `PASS` = '$pass' AND `LOGIN` = '$login';

    Другими словами:
    Выбрать из таблицы `users` строки где `PASS` = введенному паролю и `LOGIN` = введенному логину.
    Тем самым мы и сравниваем пароль который ввели и тот который в базе.

    Если количество строк которые вернет MySQL будет больше 0 - данные верны. Если ничего не вернет(0) - такого аккаунта нет.

    Результат: ничего не вернет, такого аккаунта нет ибо такой комбинации логина и пароля в базе нет.
    Ответ написан
    4 комментария
  • Как дойти до 120, отсчитывая PHP скриптом по +1 каждый час?

    Возможно я Вас неправильно понял, но.

    Создаем бд запись где храним - ид пользователя и очки. Раз в час(крон) грузим всех пользователей которые онлайн(online > 0), перебираем всех пользователей, грузим данные о их очках. Если очки == 120 - не выполнять, если нет - повышаем (передаем в Sql запросе WHERE `id` = id)

    По поводу онлайна, на определенное действие на сайте(которое всегда вызывается когда пользователь на сайте) поставьте запись в поле БД(к примеру поле online) = 5. Ставим крон на каждую минуту, перебираем всех пользователей WHERE online > 0 и уменьшаем им online(online--), тем самым онлайн будет обновляться каждые 5 минут. Если чел на сайте - он 5 минут будет светится онлайн, если за 5 минут он опять не появится на сайте(не запишет его скрипт в бд как online = 5) то ему присвоеться значение 0(online) - пользователь оффлайн.
    Ответ написан
    Комментировать
  • Как в input сделать вывод из БД?

    <input value="сюда выводи переменную">
    Ответ написан
    Комментировать
  • Как вносить записи для каждой строки?

    Не совсем понял что нужно.

    update `name table` set `name table`.`name` = `name table`.`name` - `name table2`.`name2`


    Обратитесь в запросе к ячейки из другой таблицы. Оно?
    Ответ написан
  • Как хранить переносы строк?

    Если далее этот текст вы выводите в виде HTML - переводите и храните сразу в соответствующим варианте.

    Функция n2br вам в помощь.
    Ответ написан
    Комментировать