За последние 24 часа нас посетили 19049 программистов и 1638 роботов. Сейчас ищут 889 программистов ...

проблема запроса к БД MySQL

Тема в разделе "MySQL", создана пользователем plavv, 20 сен 2013.

  1. plavv

    plavv Новичок

    С нами с:
    20 сен 2013
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте!
    Помогите пожалуйста разобраться.
    Код (Text):
    1.  
    2. /*первый вызов функции ostatok */
    3. $ffff=ostatok($_SESSION['id_user'],'1');
    4.            
    5.             $sql = "UPDATE dengi SET enb='0' WHERE user_id='".$_SESSION['id_user']."'";
    6.             mysql_query($sql)or die("Error! / Ошибка!");
    7.  
    8. /*второй вызов функции ostatok */
    9.  $ffff=ostatok($_SESSION['id_user'],'1');
    Функция ostatok()
    Код (Text):
    1.  
    2. function ostatok ($myid,$type) {
    3.     echo '<br>$myid=';
    4.     var_dump($myid);
    5.    
    6.     echo '<br>$type=';
    7.     var_dump($type);
    8.    
    9.     $sql123 = "SELECT ostatok FROM dengi WHERE enb='1' and user_id='".$myid."' order by dkr desc limit 1";
    10.    
    11.     echo '<br>$sql123=';
    12.     var_dump($sql123);
    13.  
    14.     $query123 = mysql_query($sql123);
    15.     echo "<br> запрос к базе данных=>";
    16.     var_dump ($query123);
    17.  
    18.     $data123 = mysql_fetch_row($query123);
    19.     echo '<br>$data123=';
    20.     var_dump($data123);
    ответ от сервера
    $myid=string(2) "32"
    $type=string(1) "1"
    $sql123=string(82) "SELECT ostatok FROM dengi WHERE enb='1' and user_id='32' order by dkr desc limit 1"
    запрос к базе данных=>resource(14) of type (mysql result)
    $data123=array(1) { [0]=> string(3) "333" }

    $myid=string(2) "32"
    $type=string(1) "1"
    $sql123=string(82) "SELECT ostatok FROM dengi WHERE enb='1' and user_id='32' order by dkr desc limit 1"
    запрос к базе данных=>resource(16) of type (mysql result)
    $data123=bool(false)

    Вопрос. Почему при первом вызове функции внутри её запрос к БД выполняется, а после выполнения запроса к БД в основном теле программы и втором вызове функции внутри её запрос к БД не выполняется?
    Заранее благодарен за помощь.

    Добавлено спустя 23 минуты 26 секунд:
    Вопрос закрыт!
    Все 3 запроса выполняются.
    У всех 3 запросов таблица и поле user_id идентичны, меняется только enb.
    В первый селект есть как минимум одна строка с enb=1, она и возвращается.
    Потом вы обновляете все строки на enb=0
    Совершенно логично, что теперь нет строк с enb=1 и возвращается пустое множество.