За последние 24 часа нас посетили 17520 программистов и 1622 робота. Сейчас ищут 1643 программиста ...

Функция mysql_fetch_array

Тема в разделе "PHP и базы данных", создана пользователем dembi, 19 авг 2008.

  1. dembi

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

    С нами с:
    21 июл 2008
    Сообщения:
    78
    Симпатии:
    0
    Привет Всем!

    Делаю выборку из БД. Где мне нужно просуммировать все значение для которых выполняется некое условие за определенный промежуток времени.

    К примеру делаю выборку за сегодня, и так как не одной записи небыло с таким условием я получаю ошибку:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\TEMP\PHP\statistic\main.php on line 61.

    Вот мой запрос:

    $result2 = mysql_query ("select sum(cnt) from стат where id=ххх and status=1,5,6,7,8 and время='2008-08-19'");
    $myrow2 = mysql_fetch_array ($result2);

    Мне нужно, если нет ни одной записи, которое удовлетворяло бы заданному запросу, в результат возвращался бы ноль.

    Как это сделать, подскажите, пожалуйста, или где можно почитать про это???

    Заранее спасибо!
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    [sql]status=1,5,6,7,8[/sql]
    wtf?
     
  3. dembi

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

    С нами с:
    21 июл 2008
    Сообщения:
    78
    Симпатии:
    0
    1. status=1,5,6,7,8

    Это мои значения. То есть это часть условия.
     
  4. Петр

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

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    [sql]status in (1, 2, 3, 4, 5)[/sql]
     
  5. dembi

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

    С нами с:
    21 июл 2008
    Сообщения:
    78
    Симпатии:
    0
    сейчас просто остается пустое поле.

    Как сделать так, чтобы там был ноль, если нет записей соответствующему фильтру?
     
  6. dembi

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

    С нами с:
    21 июл 2008
    Сообщения:
    78
    Симпатии:
    0
    То есть БД, в ней есть поле status, в котором есть разные значения от 0 до 8.
    Я делаю сумму всех полей для которых выполняется условие:

    $result2 = mysql_query ("select sum(cnt) from стат where id=ххх and status in (1, 5, 6, 7, 8) and время='2008-08-19'");
    Дальше результат помещаю в ассоциативный массив:
    $myrow2 = mysql_fetch_array ($result2);

    где после выполнения запроса, в поле результата я хочу чтобы был 0 если нет ни одной записи соотвтетсвующей данному запросу.
    В обратном случае я думаю, что я получу сумму таких записей.
     
  7. decoder

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

    С нами с:
    11 фев 2006
    Сообщения:
    469
    Симпатии:
    0
    PHP:
    1.  
    2. $sql = "select sum(cnt) from stat
    3.           where
    4.               id='$id' and
    5.              `status` in (1, 5, 6, 7) and
    6.              `date`='2008-08-19'";
    7. $result = mysql_query($sql);
    8. list($myrow) = mysql_fetch_row($result);
    9.  
     
  8. dembi

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

    С нами с:
    21 июл 2008
    Сообщения:
    78
    Симпатии:
    0
    Попробывал все как ты написал, ошибка не выводится.
    Но все равно в этоге поле остается пустым.

    а что это за функция list ? Что она должна делать?
     
  9. Den1s

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

    С нами с:
    10 авг 2008
    Сообщения:
    19
    Симпатии:
    0
    Адрес:
    Siberia
    list() поочередно присваивает значения элементам массива $myrow2