Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wyciąganie losowego rekordu z bazy
Croos22
post
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 4
Dołączył: 22.03.2010

Ostrzeżenie: (0%)
-----


Witam.

Interesuje mnie czy jest możliwość aby wyciągnąć losowy rekord z bazy ale aby po odświeżeniu strony ciągle był ten sam? Myślałem aby wylosować a następnie dodać do bazy i z powrotem wyciągnąć .

Na razie mam takie zapytanie które wyciąga losowy rekord:
  1. $query="SELECT * FROM users ORDER BY RAND() LIMIT 1";
  2. $result=mysql_query($query);
  3. while($row=mysql_fetch_assoc($result)){
  4. echo $row['user_name'];
  5. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
modern-web
post
Post #2





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


Rozumiem, ze działania zegara tłumaczyć nie muszę (IMG:style_emoticons/default/winksmiley.jpg)
Natomiast skrypt PHP wykonuje zapytanie do bazy danych, szuka usera w tabeli user_name z tym, ze tylko tych, którzy mają id>0. ORDER BY to nic innego jak kolejność wyszukiwania rekordów w tabeli. Można przeszukiwać według id (wylosuje tylko 1 rekord bo LIMIT ustawiony jest na 0,1 - zero lub max. jeden, natomiast jeśli ustawilbys LIMIT na np. 0,5 to wylosuje kolejno id od 1 do 5), według daty, nazwy użytkownika... praktycznie wszystkiego. ORDER BY RAND() to wyszukiwanie losowe... niezależnie od id, nazwy użytkownika itp... LIMIT 0,1 oznacza, ze wyników będzie od 0 do 1 (zero bo może zdarzyć się ze zabraknie użytkowników i wtedy nie wyświetli się błąd). Gdybyś ustawił na 0,7 to wyników by było od 0 do 7 (minimum 0, maximum 7).

To co masz dalej przy if oznacza, ze jeśli rozwiazanie jest != 0 (tzn. jest jakiekolwiek) to przechodzi do wyświetlenia wylosowanego użytkownika.

Ten fragment wyświetla wylosowanego użytkownika:
$wylosowany = mysql_result($losowanie,"user_name");

A i... Popraw mysql_result($losowanie,"user_name") na to: mysql_result($losowanie,"users") bo mam wrażenie ze było źle...

Ten post edytował modern-web 24.10.2010, 20:51:31
Go to the top of the page
+Quote Post

Posty w temacie
- Croos22   [MySQL][PHP]Wyciąganie losowego rekordu z bazy   23.10.2010, 12:27:32
- - lessi   Jak dasz do bazy to wtedy jak znów wejdziesz na st...   23.10.2010, 12:34:51
- - Croos22   Właściwie o tym nie pomyślałem. A była by możliwo...   23.10.2010, 12:45:49
- - lessi   A właściwie po co ci to potrzebne? Bo nie wiem do ...   23.10.2010, 12:48:25
- - Croos22   Chciałem aby wylosowało jeden rekord i ten wylosow...   23.10.2010, 12:51:12
- - lessi   No więc jeżeli chcesz aby ten rekord był cały czas...   23.10.2010, 12:58:23
- - Croos22   A czy jest możliwość aby każdy zobaczył ten sam wy...   23.10.2010, 13:18:00
- - lessi   to musisz to dodać do bazy danych lub do pliku   23.10.2010, 13:44:21
- - modern-web   Jeśli chodzi Ci o taki skrypt, który losowałby 1 r...   23.10.2010, 13:53:50
- - Croos22   A nie ma prostszego sposobu na wyciągnięcie oraz u...   23.10.2010, 19:46:22
- - modern-web   Jak widzisz mój skrypt zawiera także polecenie UPD...   23.10.2010, 21:01:36
- - Croos22   Takie losowanie chciałem zrobić z nagrodami. Chcia...   23.10.2010, 22:39:33
- - modern-web   Mógłbyś opisać to jeszcze bardziej szczegółowo ? C...   23.10.2010, 22:59:09
- - Croos22   Po prostu... Zegar odlicza a gdy skończy w linii 9...   23.10.2010, 23:07:42
- - modern-web   Ja to rozumiem tak: 1. zegar odlicza 2. kończy od...   23.10.2010, 23:14:25
- - Croos22   Dokładnie o to chodzi.   23.10.2010, 23:20:00
- - modern-web   A powiedz mi jeszcze; Dość istotna sprawa. Czy uży...   23.10.2010, 23:37:42
- - Croos22   Tak lecz przy dużej liczbie użytkowników szansa na...   23.10.2010, 23:40:43
- - modern-web   Dobra, to po prostu daj taki skrypt: [PHP] pobier...   23.10.2010, 23:56:20
- - Croos22   Coś niestety poszło nie tak :< Parse error: syn...   24.10.2010, 16:27:23
- - Ulysess   jest zegar.. w momencie gdy czas odliczania osiagn...   24.10.2010, 17:22:24
- - modern-web   Bo zapomniałeś o } [PHP] pobierz, plaintext ...   24.10.2010, 17:25:46
- - Ulysess   eee .. a co to za losowanie skoro pobierze 1 rekor...   24.10.2010, 17:31:11
- - modern-web   Aaaaaa!!! Faktycznie, mój błąd - powin...   24.10.2010, 17:34:36
- - Croos22   No działa z początku miałem wrażenie, że się zmien...   24.10.2010, 19:59:36
- - modern-web   Rozumiem, ze działania zegara tłumaczyć nie muszę ...   24.10.2010, 20:48:50


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 13:40