Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php mysql] losowe rekordy
Forum PHP.pl > Forum > Przedszkole
idna
witam jak wyswietlic na stronie losowy rekord z mysql?
zalozmy za mam tebele "galeria" a w niej z 30 wierszy o strukturze, kazdy z innymi danymi
data | miejsce | opis | zdjecie

jak zrobic aby wylosowac jeden i wyswietlic wszystkie jego wwartosci snitch.gif

chyba wiecie o co mi chodzi biggrin.gif prosze o pomoc
piotrekkr
hmm mysler ze mozna by pobrac wszystko z bazy i zapisac kazdy wiersz do tablicy pozniej funcja rand(); wybierze jakas losowa liczbe z przedzialu od 0 do count($tablica_z wynikami) i pozniej wyswietlisz wiersz
  1. <?php
  2. $wynik=$tablica_z_wynikami[rand(0, count($tablica_z_wynikami))];
  3. ?>
Gość
a nie da sie jakos prosciej?
Gość
tzn dokladnie mi chodzi o wylosowanie z tabeli "galeria" jednego calego rekordu (wiersza) z danymi: "data | miejsce | opis | zdjecie" nastepnie przypisanie kazdej z nich do osobnej zmiennej iw wyswietlenie tego tekstu (z wyswietleniem nie ma problemu:D) winksmiley.jpg
piotrekkr
hmm ja tak na szybkiego wymyslilem ale moze w mysql jest jakas funkcja co wybiera losowy rekord tylko ja o takiej funkcji jeszcze nie slyszalem biggrin.gif
Gość
poczekamy.. z nadzieja ze ktos mi pomoze smile.gif
mike
  1. SELECT * FROM galeria ORDER BY RAND() LIMIT 1

... i masz losowy rekord.
Gość
dziekuje:) a teraz pytanie w jaki sposob wyswietlic poszczegolne dane zawarte w nim? snitch.gif?
mike
Cytat(Gość @ 24.06.2006, 15:56 ) *
dziekuje:) a teraz pytanie w jaki sposob wyswietlic poszczegolne dane zawarte w nim? snitch.gif?

Tak jak z każdego innego rekordu, pobranego w każdy inny sposób.
mysql_fetch_row() lub inna funkcja z rodziny mysql_fetch_*
Gość
  1. <?
  2. function mysql_fetch_all($result) {
  3.  while($row=mysql_fetch_array($result)) {
  4.  $return[] = $row;
  5.  }
  6.  return $return;
  7. }
  8.  
  9. echo $row['data'];
  10. echo $row['miejsce'];
  11. echo $row['opis'];
  12. echo $row['zdjecie'];
  13. ?>


tzn tak?
dopiero zaczynam swoja przygode z php i nie wiem czy dobrze kombinuje winksmiley.jpg
czy zamiast np $row['data']; ma byc $return['data']; ?
Gość
czy tak?

  1. <?php
  2. $result = mysql_query("SELECT * FROM galeria ORDER BY RAND() LIMIT 1");
  3. if (!$result) {
  4. echo 'jakis blad: ' . mysql_error();
  5. }
  6. $row = mysql_fetch_row($result);
  7.  
  8. echo $row['data'];
  9. echo $row['miejsce'];
  10. echo $row['opis'];
  11. echo $row['zdjecie'];
  12. ?>


cos w tyms tylu?
piotrekkr
  1. <?php
  2. while($row=mysql_fetch_array($result)){
  3. echo $row['data'];
  4. echo '<br />';
  5. echo $row['miejsce'];
  6. echo '<br />';
  7. echo $row['opis'];
  8. echo '<br />';
  9. echo $row['zdjecie'];
  10. echo '<br />';
  11. };
  12. ?>


lub np:
  1. <?php
  2. while($row=mysql_fetch_array($result)){
  3. echo $row['data'].'<br />'.$row['miejsce'].'<br />'.$row['opis'].'<br />'.$row['zdjecie'].'<br />';
  4. };
  5. ?>


lub jak ci sie tylko podoba inaczej smile.gif.

mysql_fetch_array pobiera za jednym razem tylko jeden rekord z wyniku wiec trzreba go w petli pobierac dopoki nie zwroci mysql_fetch_array() false co znaczy ze nie majuz rekordow w wyniku zapytania
Gość
dzieki biggrin.gif juz rozumiem smile.gif guitar.gif
Athlan
Cytat(piotrekkr @ 24.06.2006, 11:58 ) *
  1. <?php
  2. $wynik=$tablica_z_wynikami[rand(0, count($tablica_z_wynikami))];
  3. ?>


tak przy okazji... nie robimy tak:

tylko tak:
  1. <?php
  2. $wynik=$tablica_z_wynikami[array_rand($tablica_z_wynikami)];
  3. ?>


array_rand() będzie szybsze od count() i rand() razem wziąte dry.gif
piotrekkr
heh nie wiedzialem ze jest taka funkcja no w sumie nigdy jeszcze nie losowalem z tablicy indexu. no ale juz wiem biggrin.gif
Gość
o tak chcialem smile.gif
  1. <?php
  2. $wynik = mysql_query("SELECT * FROM galeria ORDER BY RAND() LIMIT 1");
  3. while($row=mysql_fetch_array($wynik)){
  4. $losdata = $row['data'];
  5. $losmiejsce = $row['miejsce'];
  6. $losopis = $row['opis'];
  7. $loszdjecie = $row['zdjecie'];
  8. };
  9. ?>

dziala wysmienicie:0 jeszcze raz dziekuje laugh.gif
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.