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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Рейтинг в результате голосования

Сообщения:  [1-2] 

 
 автор: cheops   (26.11.2005 в 22:13)   письмо автору
 
   для: Денис   (26.11.2005 в 19:47)
 

1) $count после mysql_fetch_array() лучше уже не использовать - вычисляйте число записей при помощи mysql_num_rows() до вызова этой функции и помещайте результат во временную переменную.
2) Переменные интерпретируются только в двойных кавычках, в одинарных выведется не значение $film, а $ и film. Подробности в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=130

   
 
 автор: Денис   (26.11.2005 в 19:47)   письмо автору
 
 

Появилась небольшая проблема с системой оценки по результатам голосования. Идея его следующая: существует некоторое количество фильмов. Каждый отдельный пользователь, читая аннотацию фильма, может выставить оценку этому фильму. Записи не повторяются, т.е. один и тот же пользователь дважды проголосовать на один и тот же фильм не может. Далее, подсчитывается суммарное количество баллов по каждому фильму и в результате необходимо сравнить эти суммарные числа и расставить id-фильма в том порядке, в котором идут суммарные числа баллов в порядке возрастания. Т.е.
---------------------------
id_film | ball
-----------------
1 | 35
2 | 50
3 | 25
------------------
в результате должен получиться массив с записями: 2 1 3
Вот код, который я создал:

global $film_id, $number_ball;
        $query = "SELECT distinct(id_film) FROM ".TABLE_USER_FILM_BALL;
        $count = mysql_query($query);
        $i=0;
        while($data=mysql_fetch_array($count)) 
          { 
            $film_id[$i] = $data['id_film']; 
            $i++; 
          }
        
        echo mysql_num_rows($count);
        for($i=0; $i<$all_rec; $i++)
        {
            $film = $film_id[$i];
            $query = "SELECT ball FROM ".TABLE_USER_FILM_BALL" WHERE id_film='$film'";
            $result = mysql_query($query);
            if(!$result) mysql_error();
            $ball = 0; $n=0;
            while($data=mysql_fetch_array($result)) 
              { 
                $ball =+ $number_ball['ball'];
                $sumar_num_ball[$i] = $ball;
                $n++; 
              } 
        }
        $sort_ball = array();
        $max = 0;
        for($i = 0; $i < $count; $i++)
        {
            for($j = 0; $j < $count; $j++)
            {
                if($sumar_num_ball[$j] > $max)
                {
                    $max = $sumar_num_ball[$j];
                    $sort_ball[$i] = $film_id[$j];
                }
            }
        }
        //print_r $sort_ball;
    }


и вот ошибки, с которыми я столкнулся:
1) сразу же после первого цикла ни $count ни $film_id программа не видит содержания этих переменных
2) а потому ругается на эту запись: '$film'
Возможно, кто-то сталкивался с подобной программой либо же мне нужна "свежая" голова...

   

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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