BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 17 | UU: 407
[MYSQL] Jak posortować tabelę wg losowej kolejności?
25 kwiecień 2007

Wielokrotnie pracując na rozbudowanych bazach danych z dużą ilością informacji, zachodzi potrzeba wybierania z niej pewnych porcji informacji.

Dla przykładu załóżmy, że posiadamy tabelę ze zdjęciami, które wyświetlamy na stronie w porcjach po 20. Pierwsze 20 zdjęć znajduje się na pierwszej stronie, następne 20 na kolejnej itd. Obejrzenie zdjęcia o przykładowym 1000 numerze wymaga przedarcia się przez kolejne strony nawet jeśli zastosowany jest dobry system nawigacji.

Aby "dać szansę" zdjęciom zdnajdującym się w dalszej kolejności można zastosować losowe sortowanie. Wymaga to wprowadzenia dodatkowej kolumny wypełnianej co jakiś czas losowymi ciągami znaków. W ten sposób zastosowanie sortowania wg tej kolumny pozwoli na wyświetlenie zdjęć w losowej kolejności.

Przykład:

Kod: mysql

UPDATE przykladowa_tabela SET kolumna_z_losowymi_znakami=MD5(RAND())

 

SELECT * FROM przykladowa_tabela ORDER BY kolumna_z_losowymi_znakami ASC

W pierwszej sekcji aktualizujemy w tabeli "przykladowa_tabela" kolumnę "kolumna_z_losowymi_znakami", którą dodaliśmy specjalnie w tym celu, losowymi ciągami znaków.

W drugiej sekcji pobieramy zawartość tabeli zaznaczając, że chcemy ady wiersze  pokazywane były w kolejności narastającej ASC sortowanej wg kolumny "kolumna_z_losowymi_znakami".

Używając co pewien czas polecenia UPDATE z pierwszej sekcji naszego przykładu, możemy aktualizować zawartość dodatkowej kolumny losowymi wartościami dzięki czemu sortowanie wg tych wartości pozwoli na losowe pokazywanie wyników z innych kolumn, np. kolumn ze zdjęciami.

Autor: Adam Suchowski

Dodaj komentarz









Komentarze
Jeden komentarz
krzych
25 kwiecień 2007, godz. 12:58

Szukałem czegoś takiego do mojego projektu, dzięki za wysiłek.

 
 
Copyright © 2006-2011 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker