Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сосчитать все значения массива
 
 автор: anton_m   (26.06.2009 в 08:57)   письмо автору
 
 

Хочу сосчитать сумму всех просмотров заметок одной категории.
Для этого делаю такой запрос в БД (вытаскиваю из поля post_view численные значения в массив)

$query = mysql_query("SELECT post_view FROM postInfo WHERE post_genre = 'romantic'");
$count_view_romantic = mysql_fetch_array($query);

Понятно, что в $count_view_romantic содержится массив, но как посчитать сумму всех значений? Бьюсь уже несколько часов.
array_sum не помогает,
print_r ($count_view_romantic); выводит только Array ( [0] => 32 [post_view] => 32 );

Я догадываюсь, что решение очень простое, пожалуйста, помогите его найти.

  Ответить  
 
 автор: Valick   (26.06.2009 в 09:09)   письмо автору
 
   для: anton_m   (26.06.2009 в 08:57)
 


<?php
$query 
"SELECT post_genre, SUM(post_view) AS total FROM postInfo GPOUP BY post_genre ";
$res mysql_query($query);
while (
$count mysql_fetch_array($res){
echo 
$count['post_genre']." -> ".$count['total']."<br />";
}
?>

Попробуйте вот это.

  Ответить  
 
 автор: AcidTrash(кафе)   (26.06.2009 в 09:14)
 
   для: Valick   (26.06.2009 в 09:09)
 

while ($count = mysql_fetch_array($res){
Зачем использовать mysql_fetch_array если нужны только ассоциированные данные. Или это так на будущее :)

  Ответить  
 
 автор: Valick   (26.06.2009 в 09:17)   письмо автору
 
   для: AcidTrash(кафе)   (26.06.2009 в 09:14)
 

Это вообще никак...))
Просто "довесок" к запросу)

  Ответить  
 
 автор: anton_m   (26.06.2009 в 09:19)   письмо автору
 
   для: Valick   (26.06.2009 в 09:17)
 

попробовал. пишет вот это
Parse error: syntax error, unexpected '{' in...
Сейчас ищу ошибку.

  Ответить  
 
 автор: Valick   (26.06.2009 в 09:23)   письмо автору
 
   для: anton_m   (26.06.2009 в 09:19)
 

скобку забыл я закрыть в условии цикла

<?php
$query 
"SELECT post_genre, SUM(post_view) AS total FROM postInfo GPOUP BY post_genre ";
$res mysql_query($query);
while (
$count mysql_fetch_array($res)){
echo 
$count['post_genre']." -> ".$count['total']."<br />";
}
?> 

  Ответить  
 
 автор: anton_m   (26.06.2009 в 09:36)   письмо автору
 
   для: Valick   (26.06.2009 в 09:23)
 

да, спасибо. но теперь пишет вот такое предупреждение? с чем это здесь может быть связано?

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

  Ответить  
 
 автор: Valick   (26.06.2009 в 09:40)   письмо автору
 
   для: anton_m   (26.06.2009 в 09:36)
 

дайте кусок кода вместе с подключением к базе
а... ненадо.. просто ошибка синтаксиса не GPOUP а GROUP

  Ответить  
 
 автор: anton_m   (26.06.2009 в 09:47)   письмо автору
 
   для: Valick   (26.06.2009 в 09:40)
 

<?php 
  $db 
mysql_connect('localhost','user'password);
  if (!isset (
$db))
                    {
                        die(
"Соединиться с базой не удалось<br />");
                    }
  
$sel mysql_select_db("nameDB");
?>


А сам запрос

<?php 
$query 
"SELECT post_genre, SUM(post_view) AS total FROM postInfo GPOUP BY post_genre ";
$res mysql_query($query);
while (
$count mysql_fetch_array($res)){
echo 
$count['post_genre']." -> ".$count['total']."<br />";
}
?>  


при этом все другие запросы работают, с этим что-то не так

  Ответить  
 
 автор: Valick   (26.06.2009 в 09:55)   письмо автору
 
   для: anton_m   (26.06.2009 в 09:47)
 

я же написал чуть выше) обычная опечатка
исправьте GPOUP на GROUP
$query = "SELECT post_genre, SUM(post_view) AS total FROM postInfo GROUP BY post_genre ";

  Ответить  
 
 автор: anton_m   (26.06.2009 в 10:04)   письмо автору
 
   для: Valick   (26.06.2009 в 09:55)
 

Все работает, спасибо тебе, Мастер кода и запросов!))
Последняя тогда просьба.
Здесь все выводится в цикле и сразу для всех жанров.
Как сделать запрос для каждого отдельного жанра? мне просто нужно поместить это значение в переменную, для дальнейшей работы с ним?

  Ответить  
 
 автор: Valick   (26.06.2009 в 10:11)   письмо автору
 
   для: anton_m   (26.06.2009 в 10:04)
 

Запрос для каждого отдельного жанра стоит делать если на одной странице Вы собираетесь выводить только этот жанр.
Попробуйте GPOUP BY post_genre заменить на Ваше условие WHERE post_genre = 'romantic'

Но если вы собираетесь распечатывать статистику по жанрам, то лучше всё получить одним запросом и сформировать массив
замените
echo $count['post_genre']." -> ".$count['total']."<br />";

на
$mass[$count['post_genre']]=$count['total'];

  Ответить  
 
 автор: anton_m   (26.06.2009 в 11:40)   письмо автору
 
   для: Valick   (26.06.2009 в 10:11)
 

Спасибо, огромное.
Вы решили мою проблему.)
Тему можно закрывать. еще раз спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования