Skocz do zawartości

Limity w chmurze


Dominik23

Rekomendowane odpowiedzi

Witam.

Każdy z was pewnie słyszał o tag cloud (chmurze linków).

Są ich dwa rodzaje, jeden spotykany w np. WP który jest oparty o ilość tagów w stawionych przez admina, a drugi rodzaj to taki który jest oparty o licznik odwiedzin na danej podstronie. Dziś próbuje dostosować ten drugi rodzaj tag clouda który jest wyświetlany na podstawie automatycznego licznika. Stosowałem go przy site która miała kilkanaście site, więc chmurka nie była duża.

No ale do rzeczy! Chce utworzyć na podstawie poniższego kodu php chmurkę o max. najpopularniejszych 30 linkach, normalnie bez ograniczeń wyświetla mi się kilkanaście tysięcy linków na jednej podstronie, więc trochę kicha.

<?php   

$style[25]='font-size:28px;font-weight:bold;color:#006600';   

$style[22]='font-size:28px;color:#006600';   

$style[20]='font-size:24px;font-weight:bold;color:#006600';   

$style[17]='font-size:24px;color:#006600';   

$style[15]='font-size:20px;font-weight:bold;color:#006600';   

$style[12]='font-size:20px;color:#006600';   

$style[10]='font-size:16px;color:#006600';   

$style[8]='font-size:12px;font-weight:bold;color:#006600';   

$style[5]='font-size:12px;color:#006600'; 






function TC_Wyswietl($sort=true,$kol=true)

{

 global $style;



 if (isset($_GET['tc_sort']))

 {

if ($_GET['tc_sort']==1) $sort=true; else {$sort=false;$kol=false;}

 }


 $result=mysql_query('SELECT sum(ile) FROM szukane');

 $row = mysql_fetch_array($result);

 $maks=$row['sum(ile)'];



 $query='SELECT * FROM szukane ORDER BY ';

 if ($sort && $kol) $query.='nazwa';

 if ($sort && !$kol) $query.='nazwa DESC';

 if (!$sort && $kol) $query.='ile';

 if (!$sort && !$kol) $query.='ile DESC';



 $result=mysql_query($query);

 while ($row = mysql_fetch_array($result)) 

 {

$p=($row['ile']/$maks)*100;

$sv='';

foreach($style as $sk=>$sv) if ($p>$sk) break;

$nazwa = $row['nazwa'];

echo '<a href="search-mp3,'; echo "$nazwa"; echo ',1.html" style="'.$sv.'">'.$nazwa.'</a>   ';

 }



}


TC_Wyswietl();

?>

Próbowałem w pakować ograniczenie ORDER BY licznik DESC LIMIT 30 ale albo wyświetla mi się najpopularniejszych 30 wierszy ale uporządkowanych od największej do najmniejszej, albo ostatnie 30 wierszy, a ja chcialbym 30 najpopularniejszych ale w różnej kolejności :/

Dacie radę Panowie? bo ja już dziś jestem zjechany i wyciśnięty jak cytryna!

Witryna Biznesu - najlepsza promocja biznesu w sieci.

Odnośnik do komentarza
Udostępnij na innych stronach

Ok. chmura mniej więcej działa tak - klik, ale nie wiem jeszcze jak w pakować tą funkcję losową RAND()?

$result = mysql_query("SELECT * FROM szukane ORDER BY `ile` DESC LIMIT 0, 30");

sorki nie doczytałem :/

CREATE TABLE IF NOT EXISTS `szukane` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `nazwa` varchar(255) CHARACTER SET latin1 NOT NULL,
 `ile` int(255) NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `nazwa` (`nazwa`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=10767;

Witryna Biznesu - najlepsza promocja biznesu w sieci.

Odnośnik do komentarza
Udostępnij na innych stronach

Podbijam temat bo mnie również to interesuje :D

Pozdrawiam

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

Odnośnik do komentarza
Udostępnij na innych stronach

Tylko wówczas te 30 będą losowane spośród wszystkich, a mi chodzi o to aby były losowo wyświetlane tylko 30 najlepszych.

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

Odnośnik do komentarza
Udostępnij na innych stronach

Posiedziałem i rozwiązałem to w ten sposób, na przykładzie Dominika:

$query = "SELECT * FROM (SELECT * FROM szukane ORDER BY `ile` DESC LIMIT 0, 30) AS tabtmp ORDER BY rand();";

$result = mysql_query($query);

nie wiem jak bardzo jest to optymalne rozwiązanie ale działa tak jak ja chcę :prezent: Przykład:

www.winka.net

na dole strony.

Pozdrawiam

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

Odnośnik do komentarza
Udostępnij na innych stronach

@garyoldman, ja to chyba ślepy byłem bo nie widziałem wcześniej twojego posta ;)

Pozdrawiam

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności