Xwab
Форумыnavigate_nextПрограммирование на PHP

Странная проблема
Сообщения
LinX

Вот короче незнал куда написать в топ по MySQL, но тут и про PHP тоже, так что ссори если что сделал еще одну тему...
Проблема в том что у меня срабатывает elseif и else!
Где в , там срабатывает код:
if ($set['aut'] > 0){
    $on = $sql->query("SELECT `id` FROM `online` WHERE `u_id` = '{$uid}'")->num_rows;
    if ($on > 0){
        $sql->query("UPDATE `online` SET `ip` = '{$ip}', `browser` = '{$browser}', `time` = '{$time}' WHERE `u_id` = '{$uid}'");
    }
    else{
        $sql->query("INSERT INTO `online`(`u_id`,`ip`,`browser`,`time`) VALUES('{$uid}','{$ip}','{$browser}','{$time}')");
    }
}
[b]elseif (isset($_SESSION['onl']) && !empty($_SESSION['onl']) && is_numeric($_SESSION['onl'])){
    $on = $sql->query("SELECT `id` FROM `online` WHERE `id` = '". filtr($_SESSION['onl']) ."'")->num_rows;
    if ($on > 0){
        $sql->query("UPDATE `online` SET `ip` = '{$ip}', `browser` = '{$browser}', `time` = '{$time}' WHERE `id` = '". filtr($_SESSION['onl']) ."'");
    }[/b]
    else{
        $sql->query("INSERT INTO `online`(`ip`,`browser`,`time`) VALUES('{$ip}','{$browser}','{$time}')");
        $_SESSION['onl'] = $sql->insert_id;
    }
}
else{
    [b]$sql->query("INSERT INTO `online`(`ip`,`browser`,`time`) VALUES('{$ip}','{$browser}','{$time}')");[/b]
        $_SESSION['onl'] = $sql->insert_id;
}


В чем проблема, кто может сталкивался?) Может баги MySQL(i)? Забыл написать, данный код срабатывает при обновлении страницы... Сразу только INSERT

20 Авг 2010, 19:10
LinX

Тестирование проходило на денвере и на mirex.su да и браузер Opera 10.61

20 Авг 2010, 19:17
Replikon

Елсе должно быть в последнюю очередь уже ПОСЛЕ елсе иф.
if ($bgg == $bugaga)
{
...
}
else if ($bgg == $bugaga)
{
...
}
else if ($bgg == $bugaga)
{
...
}
else if ($bgg == $bugaga)
{
...
}
else if ($bgg == $bugaga)
{
...
}
else
{
...
}

22 Авг 2010, 15:03
LinX

Ты хоть понял что я написал? я знаю что и как работает... Кстате кому интересно могу кинуть ссылку, где стоит... В опере может один раз после обновления не сработать, но второй раз обновив, начинает точно уже работать нижний код... Чет понять не могу почему... Мож опера самая новая бажная...

22 Авг 2010, 17:18
LinX

Кстате проверял в других браузерах(Safari, Chrome, Mozzila, IE)... На них все норм...

22 Авг 2010, 17:21
Mediator21

А может у тебя срабатывает else из блока elseif. Там запросы 1 в 1

24 Авг 2010, 12:06
LinX

Mediator21, не я проверял все закомментировав поочереди, что выделено, то и срабатывает... Правда только в Опере...

25 Авг 2010, 3:27
Mr_Edward

Эм. Браузер не имеет никакого значения!

26 Авг 2010, 9:26
DRX

в выражении if...else... ни коем образом не могут выполнится обе части, тут либо то либо другое. Попробуй echo 'blablabla'; вместо комментирования.

26 Авг 2010, 10:04
LinX

Mr_Edward, я просто сказал что срабатывает только в Опере, с другими браузерами такой глюк не наблюдается...

27 Авг 2010, 7:34
Ответить на тему