За последние 24 часа нас посетили 62092 программиста и 1781 робот. Сейчас ищут 848 программистов ...

Как поймать пустой результат в запросе

Тема в разделе "PHP для новичков", создана пользователем Искандар, 25 дек 2018.

  1. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @Искандар, пойми. То что ты делаешь, в простонародье называется "через жопу". Объясни пожалуйста подробнее, зачем у тебя в БД случились две таблицы одинакового назначения (сущности).
    Изначальную задачу ты уже объяснил "Если в первой таблице нет данных на определённую дату, то данные нужно взять из второй таблицы", дальше ты начинаешь лепить "горбатого к стенке.
    Как часто добавляются/удаляются/изменяются данные в первой и второй таблицах?
    Почему нельзя сразу перенести данные из второй таблицы которых нет в первой таблице одним разом, зачем это всё дёргать по одной дате?
     
    #26 Valick, 27 дек 2018
    Последнее редактирование: 27 дек 2018
  2. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    я же только что сказал. Неправильно задачу поставил изначально. Теперь про 2 таблица забудь.
    Как мне выводить сообщение если $a не совпадает с БД?
     
  3. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @Искандар ты просишь помочь в решении задачи, но отказываешься объяснить зачем нужно решать эту задачу. И описать логическую цепочку которая привела к постановке данной задачи.
    Поэтому про две таблицы я забыл, и про тебя тоже забыл. Удачи.
     
  4. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    PHP:
    1. $row =mysqli_num_rows($result);
    2. if(empty($row)) {
    3. echo 'пусто';
    4. }
    5. Else
    6. {
    7. echo 'не пусто';
    8. }
    Теперь наоборот. Когда $a с БД совпадает, всё равно echo "пусто" показывает.
    --- Добавлено ---
    Спасибо.
    Я мне сложно объяснить. Потому что я не русский...
     
  5. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    @Искандар дело не в русском языке, а в плохом знаний php. Я тебе советую сделать так. Вытяни любую одну строку по ее ID. вытяни оттуда дату, и сравни ее с такой же написанной тобой, я уверен покажет false. Например таблица такая:

    table
    ID - A9381368-60E4-4E19-AB4C-F31FD1372F73
    Data - 2018-12-27 10:24:19.000
    PHP:
    1. $result=mysql_query("SELECT date FROM table WHERE ID='A9381368-60E4-4E19-AB4C-F31FD1372F73'");
    2. if($result['date'] == '2018-12-27'){
    3.     echo 'совпали';
    4. }else{
    5.      echo 'не совпали';
    6. }
    И они у тебя не совпадут, поэтому у тебя и запрос твой пустой. Потому что так дату не ищут.

    А вот так они совпадут:
    PHP:
    1. if(date('Y-d-m', strtotime($result['date']))  == date('Y-d-m', strtotime('2018-12-27'))){
    2.     echo 'совпали';
    3. }else{
    4.      echo 'не совпали';
    5. }
    В итоге ты просто не правильно ищешь свою дату в таблице, поэтому она всегда пустая.
    А чтобы посмотреть твой ответ на запрос, есть функция var_dump()

    PHP:
    1. $result=mysql_query("SELECT date FROM table WHERE date='2018-12-28' GROUP BY date");
    2. var_dump($result);
    3. //в данном случаем пусто.
     
  6. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Искандар, действительно расширение mysql для работы с базой MySQL устарело и удалено в новых версиях PHP.
    Большинство подсказок приведены для расширения mysqli.
    В приведённом в 1-м сообщении примере, достаточно убедиться, что функция mysql_query() вернула значение true (в переменную $result) и более, чем ноль (0) строк результирующего набора (проверяется фунцией mysql_num_rows()).
     
    Искандар нравится это.
  7. Vitalykk

    Vitalykk Активный пользователь

    С нами с:
    13 авг 2018
    Сообщения:
    28
    Симпатии:
    5
    ТС, запусти дебагер, который есть в любой IDE, и тогда увидишь построчно, как исполняется код, и что лежит в переменной. Метод тыка не всегда самый правильний вариант в программировании