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

Форум MySQL

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

 

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

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

тема: вывести несколько картинок с мах . рейтингом.
 
 автор: oppo   (22.07.2005 в 04:05)   письмо автору
 
 

Делаю вывод в мамбо из галереи copermmine картинок с мах рейтингом.

$sql="SELECT  p.aid,p.pid,p.filename,a.aid,p.filepath,p.approved,p.title,p.pic_rating, p.hits FROM {$table_pfx}albums a, {$table_pfx}pictures p    WHERE approved='YES'  AND p.pic_rating>9900
ORDER BY rand() LIMIT {$number_of_pics}";
                  $result = mysql_db_query ($db_database,$sql);
$sql2="SELECT c.value,c.name
FROM {$table_pfx}config c
WHERE c.name='normal_pfx'";
                  $result2 = mysql_db_query ($db_database,$sql2);
                  $a = mysql_num_rows($result2);
                  $sql2 = mysql_fetch_object ($result2);

                if(mysql_num_rows($result))
                {

                        while ($sql = mysql_fetch_object ($result))

                        {
//  если нет описания для картинки, то описание = имя файла
                   $titler=$sql->title;
                   if ($titler == "")
                   {
                           $titler = $sql->filename;
                   }
 $op=($sql->pic_rating)/2000  ; //кратное число типа 5

но потом сообразил что p.pic_rating>9900 это хорошо когда рейтинг 5 а если надобавляют рейтинг до 10 - много картинок на очереди будет а надо штук 5 лучших
Заменил AND p.pic_rating>9900 на AND p.pic_rating=(SELECT MAX(p.pic_rating) FROM {$table_pfx}pictures p ) получил ошибку

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in x:\home\localhost\www\mambo_tz\modules\mod_rand_copper_ge.php

как вывести 1 из 5-6 картинок случайно имеющим наивысший ретинг.
Спасибо.

   
 
 автор: cheops   (22.07.2005 в 12:03)   письмо автору
 
   для: oppo   (22.07.2005 в 04:05)
 

Вложенные запросы работают только начиная с MySQL 4.1. Если вы хотите вывести только 5 запросов используйте предложение LIMIT 5, а для того чтобы вывести записи в случайном порядке предложение ORDER BY RAND(). Т.е. кусок запроса можно сформировать следующим образом
 AND p.pic_rating>9900 ORDER BY RAND() LIMIT 5

   
 
 автор: oppo   (22.07.2005 в 15:40)   письмо автору
 
   для: cheops   (22.07.2005 в 12:03)
 

немножко я неверно написал ...
у меня вообще LIMIT 1 проставлено ($number_of_pics=1)так мне нужно вывести на экран всего одну картинку , но отобрать ее из 5 шт с максимальным рейтингом - чтоб эти 5 картнок случайным образом крутились на главной странице ,если поставить p.pic_rating>9900 то туда попадут все картинки начиная с рейтинга 5 и выше - тоесть их может быть много , а мне надо отобрать 5-6 самых- самых и случайно одну выводить..
Как разбить запрос под старую MYSQL (я не знаю какая версия будет на сервере поэтому орентируюсь на 3.** )или можно как то по другому..

   
 
 автор: Loki   (22.07.2005 в 15:57)   письмо автору
 
   для: oppo   (22.07.2005 в 15:40)
 

Выбрать 5 самых-самых, поместить их в массив и выбрать случайную. Примерно так:

<?
$sql
="SELECT ... ORDER BY p.pic_rating DESC LIMIT 5";
$result=mysql_query($sql);
while (
$pic=mysql_fetch_array($result))
{
 
$printpic[]=$pic['p.filename'];
}
print 
"<IMG SRC='".$printpic[(rand(1,5)]."'>";
?>

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

   
 
 автор: oppo   (25.07.2005 в 12:43)   письмо автору
 
   для: Loki   (22.07.2005 в 15:57)
 

$io=rand(1,5) ;
****
ORDER BY $io and p.pic_rating DESC LIMIT {$number_of_pics}";

заработало
Спасибо за мыслю .

   
Rambler's Top100
вверх

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