Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php mysql] losowe rekordy
-idna-
post
Post #1





Goście







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 (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

chyba wiecie o co mi chodzi (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) prosze o pomoc
Go to the top of the page
+Quote Post
piotrekkr
post
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


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. ?>


Ten post edytował piotrekkr 24.06.2006, 12:59:24
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







a nie da sie jakos prosciej?
Go to the top of the page
+Quote Post
-Gość-
post
Post #4





Goście







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) (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
piotrekkr
post
Post #5





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
-Gość-
post
Post #6





Goście







poczekamy.. z nadzieja ze ktos mi pomoze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mike
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


  1. SELECT * FROM galeria ORDER BY RAND() LIMIT 1

... i masz losowy rekord.
Go to the top of the page
+Quote Post
-Gość-
post
Post #8





Goście







dziekuje:) a teraz pytanie w jaki sposob wyswietlic poszczegolne dane zawarte w nim? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) ?
Go to the top of the page
+Quote Post
mike
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(Gość @ 24.06.2006, 15:56 ) *
dziekuje:) a teraz pytanie w jaki sposob wyswietlic poszczegolne dane zawarte w nim? (IMG:http://forum.php.pl/style_emoticons/default/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 to the top of the page
+Quote Post
-Gość-
post
Post #10





Goście







  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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
czy zamiast np $row['data']; ma byc $return['data']; ?
Go to the top of the page
+Quote Post
-Gość-
post
Post #11





Goście







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?
Go to the top of the page
+Quote Post
piotrekkr
post
Post #12





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


  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 (IMG:http://forum.php.pl/style_emoticons/default/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

Ten post edytował piotrekkr 24.06.2006, 17:35:58
Go to the top of the page
+Quote Post
-Gość-
post
Post #13





Goście







dzieki (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) juz rozumiem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post
Athlan
post
Post #14





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


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 (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
piotrekkr
post
Post #15





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


heh nie wiedzialem ze jest taka funkcja no w sumie nigdy jeszcze nie losowalem z tablicy indexu. no ale juz wiem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
-Gość-
post
Post #16





Goście







o tak chcialem (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
Go to the top of the page
+Quote Post

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: 24.08.2025 - 21:10