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

Форум PHP

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

 

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

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

тема: Нужна помощь специалиста PHP))
 
 автор: wolf95   (31.08.2013 в 19:05)   письмо автору
 
 

Есть такая проблема пытался вывести пользователя написавшего больще комментариев на 1-е место. вот так

$u = mysql_query("SELECT * FROM `reg`");
        while($row = mysql_fetch_array($user)) 
        {    
            $users = $row[lo]; // Выводим пользователей логин
/**************************************************************************************************************************/
            //Выводим колличество комментариев из таблицы comm_fighter
            $comm1 = mysql_query("SELECT count(*) FROM `comm1` WHERE `author` = '{$users}'");
            $myComm1 = mysql_fetch_array($comm_fight2);

            //Выводим колличество комментариев из таблицы comm_fighter
            $comm2 = mysql_query("SELECT count(*) FROM `comm2` WHERE `author` = '{$users}'");
            $myComm2 = mysql_fetch_array($comm_fight2);

            $b = $myComm1[0] + $myComm2[0];
            $c = $b / 10; // выводим общую сумму рейтинга пользователя и делим на 10
}

 


Потом написал вывод пользователей че я думал работает оказывается не с работало

$us= mysql_query("SELECT * FROM `reg` order by $c");
    while($row = mysql_fetch_array($us)) 

echo $row[id];
}


Короче выводит пользователей, но сортировки нету

  Ответить  
 
 автор: confirm   (01.09.2013 в 09:14)   письмо автору
 
   для: wolf95   (31.08.2013 в 19:05)
 

Не стоит и пытаться, но все таки, если уж пишем, то почему полученным ресурсам даем одни имена, а получать ряд пытаемся из несуществующих?

  Ответить  
 
 автор: wolf95   (02.09.2013 в 20:07)   письмо автору
 
   для: confirm   (01.09.2013 в 09:14)
 

В этот то и проблема) Когда я пишу внутри while данные выводятся, но сортировки опять не бывает) Вижу ты такой умный может поможешь ))))

  Ответить  
 
 автор: confirm   (02.09.2013 в 20:37)   письмо автору
 
   для: wolf95   (02.09.2013 в 20:07)
 

>внутри while данные выводятся

$u = mysql_query("SELECT * FROM `reg`");
while($row = mysql_fetch_array($user))

Хотите сказать, что $u и $user, это одна и та же переменная ссылающаяся на один и тот же ресурс (и далее тоже такая ошибка), и работает, а не вызывает ошибок?
У вас вывод ошибок заблокирован видимо - такое работать не может!

У вас комментарии в двух таблицах расположены? Кстати, если уж так часто это требуется выводить, то рассчитывать этот "рейтинг" лучше при добавлении пользователем комментария, и хранить его в таблице пользователей. Добавляются записи реже, чем их вывод.

  Ответить  
 
 автор: wolf95   (02.09.2013 в 21:39)   письмо автору
 
   для: confirm   (02.09.2013 в 20:37)
 

У меня там комменатрии на 4 таблицах расположены я сделал это чтоб было мне удобно)) Комментарии к видео, Комментарии новостям и т.д.) Короче у меня голова кругом:-D я запутался)))
Если знаешь помоги а не смейся:-)

  Ответить  
 
 автор: confirm   (02.09.2013 в 22:35)   письмо автору
 
   для: wolf95   (02.09.2013 в 21:39)
 

В чем именно?
Я же говорил, что сделал бы этот "рейтинг" как поле в таблице авторов, и заносил его значение при добавлении комментариев в базу, тем более, если 4 таблицы.

Если вас интересует расчет при выборке, то почему 4 таблицы, а рассчитываете вы под двум?

  Ответить  
 
 автор: wolf95   (02.09.2013 в 23:31)   письмо автору
 
   для: confirm   (02.09.2013 в 22:35)
 

А я примерно понял что ты имеешь введу)) Спасибо за совет)) Я тут сделал 2 чтоб код был маленьким потом я бы смог свой изменить)))

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

  Ответить  
 
 автор: confirm   (03.09.2013 в 01:13)   письмо автору
 
   для: wolf95   (02.09.2013 в 23:31)
 

Обращайтесь к собеседнику на вы, тем более не зная и не видя его, иначе вас могут и "пнуть" за это на форуме. В России обращение на вы не "барщина", а уважение к собеседнику.

Я не знаю что для вас является рейтингом, сумма или нечто иное, так как в примере сумма деленная на 10. Но чтобы это ни было, то лучше поступать именно так - при каждом добавлении комментария пользователем, получать все его комментарии из всех таблиц (если рейтинг общий по всем), определить этот рейтинг (что можно вполне сделать и в рамках запроса), и сохранять его в таблице пользователя. Это ведь лучше, получать уже по готовому, чем при каждом выводе делать такие запросы и производить вычисления.
Можно еще более облегчить это, если в таблицу пользователей записывать не рейтинг как таковой, а в четыре поля количество комментариев в каждой их таблиц. А уже при выводе рассчитать рейтинг на основе этих полей и по нему производить сортировку. Таким образом всегда будет под рукою не только рейтинг, но и количество комментариев как по отдельности, так и общая их сумма.

  Ответить  
 
 автор: wolf95   (03.09.2013 в 12:21)   письмо автору
 
   для: confirm   (03.09.2013 в 01:13)
 

Знаешь у Нас в Чечне мы обрашаемся на ты потому что мы всех считаем братьями)) И еще я по любому старще ВАС поэтому так написал. так что Без обид) Ну в форму могут и пнуть, но в реале не получится)))

Спасибо за совет confirm ВЫ очень помогли. Я сделал так как вы и сказали все шикарно выводится и количество комментариев тоже)

  Ответить  
 
 автор: confirm   (03.09.2013 в 12:24)   письмо автору
 
   для: wolf95   (03.09.2013 в 12:21)
 

Все люди братья, но не всем это объяснишь )
И не известно кто старше, кто младше, просто принято так у нас.

  Ответить  
 
 автор: Jovidon   (03.09.2013 в 13:34)   письмо автору
 
   для: confirm   (03.09.2013 в 12:24)
 

+5

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

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