За последние 24 часа нас посетили 154773 программиста и 2136 роботов. Сейчас ищут 1147 программистов ...

if-else, ошибка 1064

Тема в разделе "MySQL", создана пользователем kolu4iy, 10 апр 2012.

  1. kolu4iy

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

    С нами с:
    10 апр 2012
    Сообщения:
    4
    Симпатии:
    0
    Привет, ребята. Полдня копаюсь, не могу понять где ошибка. Походу ошибка в синтаксисе но я уже массу варианто перепробовал и не получается, глянь запрос в базу плиз.
    Код (Text):
    1. MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => SELECT g.goods_id, g.goods_name, g.cat_id, g.goods_name_style, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, IFNULL(mp.user_price, g.shop_price * '1') AS shop_price, g.promote_price, g.goods_type, g.promote_start_date, g.promote_end_date, g.goods_brief, g.goods_thumb , g.goods_img, cat.start_time, cat.end_time, cat.user_rank, cat.access_for_all FROM `komp03_free8`.`ecs_goods` AS g LEFT JOIN `komp03_free8`.`ecs_member_price` AS mp ON mp.goods_id = g.goods_id AND mp.user_rank = '0' LEFT JOIN`komp03_free8`.`ecs_category` as cat on g.cat_id=cat.cat_id WHERE g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 AND (g.cat_id IN ('1','2','3','4','6','26','62','5','7','10','27','9','8','19','49','32','31','48','30','47','28','20','24','22','21','23','11','15','16','17','18','34','35','60','36','33','37','50','51','52','53','64','55','56','58','57') OR g.goods_id IN ('') ) IF cat.start_time > cat.end_time then and cat.start_time >= "17" end if ORDER BY shop_price DESC LIMIT 352, 16 ) [2] => Array ( [error] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF cat.start_time > cat.end_time then and cat.start_time >= "17" end if OR' at line 1 ) [3] => Array ( [errno] => 1064 ) )
    ошибка заключается именно в строчке
    Код (Text):
    1. IF cat.start_time > cat.end_time then and cat.start_time >= "17" end if
    мне нужно сделать разные условия where, если start_time больше end_time и если start_time меньше end time
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    e[b/]nd
    опечатка?
     
  3. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    таки да :) Слеш надо с другой стороны ставить :)
    end
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    воистину энтропия прибывает
     
  5. kolu4iy

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

    С нами с:
    10 апр 2012
    Сообщения:
    4
    Симпатии:
    0
    пардоньте, а что со словом end не так?
     
  6. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Надо писать не end, а end
     
  7. kolu4iy

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

    С нами с:
    10 апр 2012
    Сообщения:
    4
    Симпатии:
    0
    шутите что ли? какая разница между end и end?

    Добавлено спустя 7 минут 20 секунд:
    мда... вы программисты или петросяны, что за каламбур вы тут устроили?
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я думал вдруг там and должен быть...
     
  9. kolu4iy

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

    С нами с:
    10 апр 2012
    Сообщения:
    4
    Симпатии:
    0
    не, end - всмысле "конец", а не всмысле "и".
     
  10. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я честно говоря этот иф не очень понимаю. есть два условия и ничего за ними не следует. это ок? задумка какая?
     
  11. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    then ???

    Добавлено спустя 21 секунду:
    срань господня

    Добавлено спустя 1 минуту 1 секунду:
    а, это mysql… всё равно что-то не так, я вам говорю ))))
     
  12. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Кстати да, then оттуда вообще убрать надо :)))

    IF cat.start_time > cat.end_time then and cat.start_time >= "17" end if
    ЕСЛИ cat.start_time > cat.end_time ТОГДА И cat.start_time >= "17" ЗАКОНЧИТЬ ЕСЛИ