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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    У нас есть код "DATEPOSTED" из базы данных
    Допустим...

    $DATEPOSTED = date("Y m d");
    Теперь у нас нету DATEPOSTED из базы данных (
    Ответ написан
    Комментировать
  • Почему не работает PhpMyAdmin WAMP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    первая строчка в гугле:
    https://stackoverflow.com/questions/11445678/binar...
    Ответ написан
    Комментировать
  • Как получить нужные id из mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) поле id обычно используется для обеспечения уникальности данных на уровне строк. Если у вас там не уникальное значение, желательно использовать другое название. В идеале должно быть и уникальное `id` и кастомное `чтототам_id`...
    2) Rsa97 уже написал все ключевые функции для решения данной задачи. В принципе достаточно по ним загуглить...
    Ответ написан
    Комментировать
  • Не могу авторизоваться, почему?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    так, давайте по порядку:
    login = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
    $pass = filter_var(trim($_POST['pass']), FILTER_SANITIZE_STRING);
    Во первых - зачем? Вы здесь не вносите никаких данных в систему, вы просто проверяете данные от пользователя с данными в бд.
    Во вторых - если у вас есть правила для логина и пароля - надо их и применять, а не втыкать абсолютно бесполезные фильтры.

    $pass = md5($pass."ghjsfkld2345");используйте встроенные функции, password_hash и password_verify для работы с паролями.

    $result = $mysql->query("SELECT * FROM `users` WHERE `login` = '$login' AND `pass` = '$pass '");
    Читаем про подготовленные выражения. Без них рано или поздно словите инъекцию. И начинать надо сейчас, на этапе обучения, и привыкнуть что по другому с переменными в запросах не работают. Так же, по уму подключение желательно вынести отдельно и добавить настройки. Рекомендую использовать PDO драйвер подключения к бд, он работает чуть быстрее и по функционалу побогаче.

    Warning: count(): Parameter must be an array or an object that implements Countable in D:\OSPanel\domains\Site1\auth.php on line 14
    по тому что читаем доку -
    fetch_assoc — Fetch the next row of a result set as an associative array
    Соответственно, если запрос пустой, то фетчить нечего. Для проверки существует num_rows.

    Выводит: "Такой пользователь не найден." Но в БД такой пользователь есть зарегестрированный, все данные авторизации правильные, а он выводит, что нету такого пользователя.
    Программу не на*бешь. Если говорит что нету, значит нету. А если не находит то что есть, значит вы не правильно ищете, что легко проверить. Вангую что запрос будет совершенно не таким как вы ожидаете:
    ...
    $query = "SELECT * FROM `users` WHERE `login` = '$login' AND `pass` = '$pass'";
    var_dump('check: ',$login, $pass,$query); 
    $result = $mysql->query($query);
    ...


    UPD: абсолютно верно подмечено Adamos - `pass` = '$pass ' никогда ничего не найдет из-за пробела в условии.
    Ответ написан
    Комментировать
  • MySQL. Поиск в Базе данных по одному параметру?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - научитесь разделять код и представление, винегрет из кода и разметки не то что отлаживать, читать тяжело.
    Во вторых - $result полученный в первом куске вы нигде не используете, ни в выводе, ни в вычислениях.
    Ну и в третьих - в последнем куске вы затираете ранее полученный результат выборки, так что смысл в первой выборке полностью теряется.
    Ответ написан
    Комментировать
  • Как увеличить скорость загрузки данных в Mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) Как загружаются данные? Из консоли импортом дампа? Из пхпмайадмина? Из своего кода?
    2) Закомментируйте все строки создания индексов, это сильно ускорит загрузку. Естественно в конце надо будет пройтись и ручками добавить индексы в нужные места.
    3) про конфиг
    To check which configuration files are processed by the server, just execute
    $ /path_to_mysqld/mysqld --help --verbose
    At the beginning of output you will find information about configuration files, e.g.
    Ответ написан
    Комментировать
  • Как вывести в laravel count записей с одинаковым полем?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    каунт(*) as cnt + груп бай book_id + ордер бай cnt деск + лимит 5
    Ответ написан
    Комментировать
  • Как лучше обращаться к базе?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Если рассматривать аналогию с php, то там каждый запрос отправляется с новым подключением к базе.
    Это не так. Соединение открывается на все время выполнения скрипта, и закрывается автоматически по завершении работы всей цепочки вызовов. В процессе, одно соединение может выполнить стопицот запросов.

    На сколько целесообразно "пытаться" держать соединение, или все же просто по аналогии с php?
    Вот тут точного ответа не дам, однако в пхп стараются избегать персистент соединения, так как пул соединений не бесконечный, и чем быстрее закроется соединение, тем быстрее можно освободить очередь для открытия нового, таким образом с небольшой задержкой можно обслужить очередь из сильно превышающей пул очереди. А с одним соединением начинается жонглирование запросами внутри 1 соединения, что приводит к блокировке кучи пользователей пользующихся 1 соединением с бд, вместо локально тормозящего 1 юзера в случае открытия/закрытия...

    Более точно можно узнать у нодеров, мои выкладки по отношению к данной платформе больше теоретические.
    Ответ написан
    3 комментария
  • Что надо знать для размещения сайта и работы с данными?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    размещать сайт на хостинге в открытый доступ;
    А есть че размещать то? Хоть один сайт с полутора функциями? Что-то базовое, типа авторизация-регистрация-блог?

    создавать формы для ввода данных , которые будут записывать введенные данные в файл либо отправлять по указанному e-mail
    Ок, первый вопрос отпал...

    В каких технологиях мне нужно разобраться? Надо ли учить PHP и MySQL?
    Любой современный язык под веб подойдет. И базовый SQL синтаксис для начала. Если работы будете "чисто для себя" делать, этого достаточно. Если для заказчика - либо учить что-то из фреймворков, либо брать готовые цмс и настраивать, что тоже вполне работа.

    Когда будет что выкладывать на хостинг - приходите с вопросами, с удовольствием поможем.
    Ответ написан
    2 комментария
  • Может ли MySQL глючить?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Все работает в 99% нормально, но иногда проскакивает выдача другой строки, не с таким полем, по которому ищем.
    Это просто значит 99% проблема в коде. Логируйте в файл запрос, параметры и результат выполнения, скорее всего логика работает не так как вы задумали. Как только словите ошибку - смотрите свой лог, наверняка запрос будет отличаться от ожидаемого.
    Ответ написан
    2 комментария
  • Как составить sql запрос для вывода Новость дня?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    group by + count()
    Ответ написан
  • В чем причина ошибки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1)
    expects parameter 1 to be mysqli_result, bool given
    ожидаем результат запроса, но получаем булеан. Почему? 99% кривой запрос, но этого мы не узнаем, так как кода нету. Для нормального отображения ошибок запросов, нужно добавить после соединения
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

    2)
    Здесь уже проблема с хедером
    Да нет, с хедером все ок. Проблема что тут его уже нельзя отправить, так как вы что-то вывели в браузер (скорее всего как раз ошибку из п.1). Что легко гуглится (Результатов: примерно 6 170 000).
    Ответ написан
  • Как сделать выборку?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    https://www.w3resource.com/sql/aggregate-functions...

    Тупое решение "в лоб" будет что-то типа
    селект * 
    фром тбл 
    вэа юзер_ид ин(
              селект юзер_ид 
              фром тбл 
              вэа валуе_ид = 23
              груп бай валуе_ид
              хэвинг каунт(*) = 2
    ) т1
    энд валуе_ид = 22
    Ответ написан
    4 комментария
  • Как составить запрос MYSQL чтобы посчитать разницу посещений за интервал времени?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Проблема системная, а не программная. Нельзя хранить ненормализованные данные, в вашем случае на каждую дату должно быть количество посещений, а не накопительная сумма, если вы хотите какую-то статистику. Вы можете завести отдельный инкрементный счетчик для сущности (что тоже в принципе денормализация, но хотя бы оправданная), но посещения по дням должны отражать посещения за этот день, а не черте что...
    Ответ написан
  • Как я могу решить проблемы импорта SQL файла (PDO)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Содержимое файла руками для начала попробовать вставить, прочесть ошибку, думать, потом исправить. Если ошибки нет - значит мускуль не имеет доступа к файлу. Смотрите пути и доступ.
    Ответ написан
    Комментировать
  • Создаю свою первую базу данных, ошибка ERROR 1064 (42000), как исправить?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Как исправить её? И можно ли как-то переустановить Mysql, чтобы работал корректно?
    Все работает корректно, следите за ошибками, вам все пишут, читайте, смотрите мануалы, исправляйте. В команде из 2 слов сложно пропустить ошибку, если внимательно читать.
    Ответ написан
    Комментировать
  • Как я могу использовать импорт моих файлов (циклом) sql после импорта основной базы данных?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Для начала, надо видеть ошибки, для этого:
    // Mysql connect
    $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];
    $conn = new PDO(
        "mysql:host=".$settings['db']['host'].";dbname=".$settings['db']['name'].";port=".$settings['db']['port'].";",
        $settings['db']['user'],
        $settings['db']['password'],
        $opt
    );
    ...
    После этого смотреть что вылазит в ошибках.
    Ответ написан
  • Почему в БД добавляются пустые данные?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Чтобы не писать много (а про данный вариант решения можно МНОГО написать), перечислю интересные темы, которые будут полезны автору, можно прям выделять и гуглить:

    1) Подготовленные выражения
    2) Валидация данных в запросах PHP
    3) Модели в MVC PHP
    4) Реализация PHP паттерна dependency injection container (ну или хотя бы Registry)
    Ответ написан
    Комментировать
  • Есть способ с помощью Mysqli одним махом засунуть JSON в базу?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Что-то вроде этого?
    function mysqli_json_insert($mysqli, $tablename, $json){
      $arr =  json_decode($json, true);
      $fields = '`' . implode('`, `', array_keys($arr)) . '`' ;
      $values = implode(',', array_fill(0, count($arr)));
      $stmt = $mysqli->prepare("insert into `$tablename` ($fields) values ($values)");
      $types = str_repeat('s', count($arr));
      $stmt->bind_param($types, ...$arr);
      $stmt->execute();
    }
    Писал с руки, так что могут быть очепятки...
    Ответ написан
    2 комментария
  • Логирование mysql запросов с ошибками?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Берем еррорлог, поиск-"SQL" и смотрим глазками...
    Ответ написан
    Комментировать