За последние 24 часа нас посетили 17480 программистов и 1690 роботов. Сейчас ищут 964 программиста ...

Unknown column in 'where clause'

Тема в разделе "PHP для новичков", создана пользователем sumsum, 16 июн 2014.

  1. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Помогите понять что не так в моем запросе:

    SELECT COUNT(*) FROM `cat` WHERE cat_t LIKE '%2013%' AND (`cat_name` LIKE '%$inf%' OR `cat_opis` LIKE '%$inf%' )

    выдает: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /../inf.php on line 14
    Unknown column 'cat_t' in 'where clause'
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    В таблице нет колонки cat_t
     
  3. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Есть

    Добавлено спустя 45 секунд:
    Если делаю так SELECT COUNT(*) FROM `cat` WHERE (`cat_name` LIKE '%$inf%' OR `cat_opis` LIKE '%$inf%' )

    то есть без cat_t LIKE '%2013%' AND то все работает
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
     
  5. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Я уже написал. Колонка ЕСТЬ
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    ёпт.
    mysql написал, что колонки нет. и Вася написал, что колонки нет. а они никогда не врут.
     
  7. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Короче нашел причину но я не могу понять КАК такое может быть ... Обьясните мне

    Когда я формирую SQL строку за один раз то все работает а когда я выношу $AND = " cat_t LIKE '%2013%' AND"; в отдельную переменную а потом ее вставляю в строку SELECT COUNT(*) FROM `cat` WHERE ".$AND." (`cat_name` LIKE '%$inf%' OR `cat_opis` LIKE '%$inf%' ) то вылетает ошибка
    Я сделал print $SQL при первом и при втором варианте и вставил в отдельный текстовый фаил эти две строки друг под другом НИ ОДНИМ символом эти две строки не отличаются но первый вариант не хочет работать .. почему так?
     
  8. dapperkop

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

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    хз... а так составлять запрос красивше по-твоему? сделай без $AND и не парься.
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    разница есть, только ты ее не замечаешь. попробуй какой-нибудь diff натравить.
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    отдай обе строки базе напрямую. Через консольку или через PMA.
     
  11. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Сделал запрос через консоль обе строки выполнились. Короче странный такой глюк ...
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Значит проблема где-то у тебя в коде. Что-то идет не так. Даже не знаю, между формированием строки и выполнением запроса что-то делаешь? Какие-то обработки, любые? Что-то, что может влиять на строку.