Jak wybrać losowy rekord (lub losowe rekordy) z tabeli, PHP Skrypty


[MySQL][PHP] Jak wybrać losowy rekord (lub losowe rekordy) z tabeli?

0x01 graphic

Chcesz pobrać losowy rekord lub kilka losowych rekordów z tabeli w bazie danych.

0x01 graphic

Wybieranie losowych rekordów jest bardzo przydatne i o tyle przyjemne, że losowaniem zajmuje się sama baza danych i nie trzeba realizować losowego wyboru w PHP.

Losować można wszystko co zapisane jest w bazie danych - od nazwy klienta, który dzisiaj będzie miał w sklepie zniżkę, poprzez użytkownika, który dostanie nagrodę w konkursie, aż po bannery, losowe próbki do różnych zadań matematycznych czy zdarzenia w grach losowych.

<?

$sql="SELECT adres,data FROM prenumerata ORDER BY rand() LIMIT 1";

$baza = mysql_connect("localhost", "user", "password");

mysql_select_db("baza1",$baza);

$wynik = mysql_query($sql,$baza);

mysql_close($baza);

$pola = mysql_fetch_array($wynik);

$adres = $pola["adres"];

$data = $pola["data"];

echo $adres," ",$data;

?>

Za losowanie rekordów odpowiedzialne jest zapytanie SQL ORDER BY rand(). Funkcja rand() jest poleceniem MySQL, nie PHP. Sortuje ono pobrane dane w losowej kolejności. Następnie pobierając określoną ilość rekordów z zastosowaniem polecenia LIMIT można uzyskać np. jeden, losowy rekord - jak w przykładzie powyżej.

Gdy wpiszesz LIMIT 6 pobierzesz 6 losowych rekordów z tabeli:

<?

$sql="SELECT * FROM pracownicy ORDER BY rand() limit 6";

$baza = mysql_connect("localhost", "user", "password");

mysql_select_db("baza1",$baza);

$wynik = mysql_query($sql,$baza);

mysql_close($baza);

$wierszy = mysql_num_rows($wynik);

$pol = mysql_num_fields($wynik);

for ($i=0;$i<$wierszy;$i++) {

$wiersz = mysql_fetch_row($wynik);

for ($j=0;$j<$pol;$j++) echo $wiersz[$j]." ";

echo "<br>";

}

?>

W zależności od potrzeb możesz pobierać tylko wybrane pola tabeli lub cały rekord, jak w normalnych zapytaniach SELECT. W pierwszym przykładzie pobrane zostały tylko pola adres i data od osób zapisanych na prenumeratę, a w drugim przykładzie pobierana była cała zawartość rekordu dla wylosowanych pracowników.



Wyszukiwarka

Podobne podstrony:
Jak szybko przenieść zawartość pliku tekstowego do tabeli, PHP Skrypty
Jak wypisać na ekranie w PHP zawartość dowolnej tabeli, PHP Skrypty
Jak stworzyć indeks pierwszych liter dla wybranej kolumny z tabeli, PHP Skrypty
Jak sprawdzić typy i atrybuty ustawione dla każdej z kolumn tabeli, PHP Skrypty
Jak zapisać dane pochodzące z animacji do pliku lub do bazy danych, PHP Skrypty
Jak automatycznie pokolorować na przemian wiersze tabeli, PHP Skrypty
Jak wysłać ze strony WWW e-mail z dowolnym załącznikiem, PHP Skrypty
Jak stworzyć prostą wyszukiwarkę dla własnych stron WWW, PHP Skrypty
Jak pobrać zawartość strony WWW korzystając z biblioteki CURL, PHP Skrypty
jak przeslac dane z pol tekstowych do innych stron, PHP Skrypty
Jak pobrać i zapisać na dysk wskazane strony WWW, PHP Skrypty
Jak wypisać wszystkie anagramy podanego wyrazu (permutacja ciągu, PHP Skrypty
Jak zmienić tło strony w zależności od aktualnej godziny, PHP Skrypty
Jak zablokować powtórne przetwarzanie formularzy przy odświeżaniu strony, PHP Skrypty
Jak sprawdzić czy domena istnieje i do kogo należy, PHP Skrypty
jak logowac unikatowe numery IP uzytkownikow z calego dnia, PHP Skrypty
Jak udostępnić stronę tylko dla wybranych numerów IP, PHP Skrypty
jak wykonac sortowanie przez wstawianie algorytm inserion sort, PHP Skrypty
Jak wysłać ze strony WWW e-mail z dowolnym załącznikiem, PHP Skrypty

więcej podobnych podstron