Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kilka losowych rekordów z tabeli bez powtórzeń
Forum PHP.pl > Forum > PHP
roobik
Witam!
Szukałem na naszym Forum odpowiedzi na pytanie znajdujące się w temacie, ale znalazłem niewiele, bo tylko TO oraz TO

Za choinkę nie wiem, w jaki sposób zrobić następującą rzecz:
użytkownik wchodzi na stronę z plikiem, który znajduje się na stronie jakiś_serwer.pl/pliki.php?id=50, gdzie jest cały opis pliku oraz link do ściągnięcia tego pliku..... I jak dotąd jest ok. Chciałbym dodać pod spodem funkcyjkę, która pokazywałaby losowych kilka (dajmy na to 5) odnośników do losowych plików, ale bez tego, który uzytkownik obecnie ogląda.
Czyli np ogląda plik o id=50 ... a pod spodem ma na przykład odnośniki do :
plik o id=13 | plik o id=82 | plik o id=9 | plik o id=65 | plik o id=103
(to tylko oczywiście przykładowe "odnośniki")

Czy ktoś z Was mógłby mnine nakierować jak to zrobić ?
Trobin
Można użyć funkcji losującej liczby i wywalać pętlą 5 rekordów o wylosowanym id. Można też zastosować metodę 'na pieszo' do id z $_GET dodać powiedzmy 2 i 7 oraz odjąć 5 i 9 i pomnożyć 2. Jednak wydaje mi się, że to cokolwiek słaba metoda winksmiley.jpg .
roobik
Cytat
Można użyć funkcji losującej liczby i wywalać pętlą 5 rekordów o wylosowanym id

Oczywiście, że można... tyle, że jak zrobić, by żaden z tych pięciu rekordów się nie powtarzał i dodatkowo by nie został pokazany rekord "aktualny" (czyli taki, który aktualnie jest wyświetlany)...
Trobin
Zobacz ten temat
woj_tas
A używasz bazy danych?
phpion
Cytat(woj_tas @ 25.03.2008, 19:59:22 ) *
A używasz bazy danych?

Kluczowe pytanie smile.gif jeśli tak to spróbuj coś takiego:
  1. SELECT * FROM tabela WHERE id!=50 ORDER BY RAND() LIMIT 5

gdzie liczba 50 to aktualnie wyświetlany rekord.
roobik
Cytat(woj_tas)
A używasz bazy danych?

Cytat(phpion)
Kluczowe pytanie smile.gif

Ups winksmiley.jpg W pierwszym poście napisałem, że szukam odpowiedzi na pytanie w temacie, które brzmi :
Cytat
Kilka losowych rekordów z tabeli bez powtórzeń

biggrin.gif:D:D Ekhm... Oczywiście, że tak biggrin.gif:D:D

No dobsz... Więc mam takie cuś:
  1. <?php
  2. $zap_losuj = "SELECT * FROM pliki ORDER BY RAND() LIMIT 7";
  3. $wyn_losuj = mysql_query($zap_losuj);
  4. ?>


Idąc za radą phpion'a byłoby:
  1. <?php
  2. $zap_losuj = "SELECT * FROM pliki WHERE id!=$id ORDER BY RAND() LIMIT 7";
  3. $wyn_losuj = mysql_query($zap_losuj);
  4. ?>

...co jakoś nie śmiga (hm winksmiley.jpg )
pyro
Cytat(roobik @ 25.03.2008, 20:01:21 ) *
Ups winksmiley.jpg W pierwszym poście napisałem, że szukam odpowiedzi na pytanie w temacie, które brzmi :

biggrin.gif biggrin.gif:D Ekhm... Oczywiście, że tak biggrin.gif biggrin.gif:D

No dobsz... Więc mam takie cuś:
  1. <?php
  2. $zap_losuj = &#092;"SELECT * FROM pliki ORDER BY RAND() LIMIT 7\";
  3. $wyn_losuj = mysql_query($zap_losuj);
  4. ?>


Idąc za radą phpion'a byłoby:
  1. <?php
  2. $zap_losuj = &#092;"SELECT * FROM pliki WHERE id!=$id ORDER BY RAND() LIMIT 7\";
  3. $wyn_losuj = mysql_query($zap_losuj);
  4. ?>

...co jakoś nie śmiga (hm winksmiley.jpg )


takie kontrolne pytanie, ten drugi to chyba nie jest caly skrypt, który wrzuciłeś na serwer =P? (nie jest to caly jego kod?)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.