За последние 24 часа нас посетили 18619 программистов и 1703 робота. Сейчас ищет 881 программист ...

Не выполняется элементарное условие!

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

  1. Lemaks

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

    С нами с:
    5 май 2008
    Сообщения:
    11
    Симпатии:
    0
    получаю id статьи
    Код (Text):
    1. // получаем id материала
    2. $id = JRequest::getInt('id');
    выполняю запрос к базе данных.
    получаю результат (если он конечно есть)
    Код (Text):
    1. // выполняем запрос
    2. $res=$db->loadResult();
    Далее, казалось бы, элементарное условие
    Код (Text):
    1. if ($res) {
    2. echo "<script type='text/javascript'>".$res."</script>";
    3. }else{
    4. echo "<script src='mymap.js' type='text/javascript'></script>"; };
    Но результат не совсем тот что ожидалось...
    если материал с id в базе есть то выполняется первая часть условия
    если это страница индекс (id=0) то выполняется вторая часть условия
    НО если это материал с другим id, которого в базе нет, то не выполняется не первая не вторая часть.
    Хотя как я думаю, по всем законам, должна выполниться вторая часть условия. Подскажите мне пожалуйста, в чём может быть ошибка???
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Перед условиями проверь переменную var_dump($res); или echo gettype($res);
     
  3. Lemaks

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

    С нами с:
    5 май 2008
    Сообщения:
    11
    Симпатии:
    0
    спасибо, но не помогло.
    index => echo gettype($res); //NULL
    сторонний id => echo gettype($res); //NULL
    правильный id => echo gettype($res); //string
    Сделал проверку на NULL, результат тотже.
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Код (PHP):
    1. if (isset($res)) {
    2.  
    Код (PHP):
    1. if ($res !== null) {
    2.  
    Не пойдет?
     
  5. Lemaks

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

    С нами с:
    5 май 2008
    Сообщения:
    11
    Симпатии:
    0
    Я это попробовал в первую очередь. Результат тотже.
    Другие операции, если их поместить в блок
    Код (Text):
    1. else{
    2. echo "<script src='mymap.js' type='text/javascript'></script>"; };
    выполняются
    значит ошибка именно в этой строке
    Код (Text):
    1. echo "<script src='mymap.js' type='text/javascript'></script>";
    содержимое mymap.js
    Код (Text):
    1. ymaps.ready(init);
    2.     function init(){    
    3.         var TavridaMap = new ymaps.Map ("map", {
    4.             center: [45.227439, 34.517497],
    5.             zoom: 8,
    6.         }, {minZoom:8});
    7.          TavridaMap.controls.add('zoomControl', {left: 5, top: 5});
    8.          TavridaMap.controls.add('typeSelector');
    9. };
    Добавлено спустя 12 минут 30 секунд:
    перенёс код из mymap.js в условие и всё заработало как надо. Хоть вопрос и не решен, буду делать так как получается)