Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyświetlanie wyników z bazy
mimol
post 24.01.2009, 12:28:42
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


Witam
Mam stronę na phpnuke.
I jest możliwość dodawania kawałów.
Chcę, aby na stronie głównej były losowo one wyświetlane..
Napisałem coś takiego:
  1. <?php
  2.  
  3.  $losowa = rand(1, 287);  //generuje liczbe losowa  z zakresu od 1 do 287 bo tyle jest kawalow w bazie
  4.  $zapytanie = "select * from nuke_poems where poemid=$losowa";  // przypisuje do zmiennej tresc zapytania
  5.  $wykonaj = mysql_query($zapytanie);  // wykonuje zapytanie
  6.  while($odpowiedz = mysql_fetch_array($wykonaj)) // przechwytuje odpowiedz bazy
  7.  {
  8.  $content =  "" . $odpowiedz['poem'] . " ";  // wyswietla odpowiedz i przypisuje ja do content ktory odpowiada za
  9.  }    // wyswietlenie odpowiedzi w odpowiednim bloczku
  10.  
  11.  ?>


Lecz to było w przypadku, gdy w bazie było 287 kawałów..
Lecz z dnia na dzień jest więcej..
Jak zrobić, abym nie musiał codziennie zmieniać
Kod
$losowa = rand(1, 287);

na wyższą wartość, tylko było to robione automatycznie?

Baza wygląda tak:
  1. --
  2. -- Struktura tabeli dla `nuke_poems`
  3. --
  4.  
  5. CREATE TABLE `nuke_poems` (
  6. `poemid` int(11) NOT NULL AUTO_INCREMENT,
  7. `author` varchar(100) NOT NULL,
  8. `email` varchar(100) NOT NULL,
  9. `date` datetime DEFAULT NULL,
  10. `name` varchar(100) NOT NULL,
  11. `cat` varchar(10) NOT NULL,
  12. `poem` text NOT NULL,
  13. `rating` varchar(100) NOT NULL DEFAULT '0',
  14. `ratingtot` varchar(100) NOT NULL DEFAULT '0',
  15. `hits` int(100) NOT NULL DEFAULT '0',
  16. `ratings` varchar(10) NOT NULL,
  17. UNIQUE KEY `id` (`poemid`)
  18. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=436 ;
  19.  
  20. --
  21. -- Zrzut danych tabeli `nuke_poems`
  22. --
  23.  
  24. INSERT INTO `nuke_poems` VALUES(1, 'Metallica', 'm@interia.pl', '2004-08-07 16:41:34', 'Jagiełło', '6', 'Tata krzyczy na Jasia: <br />\r\n- I znów pała z historii!! <br />\r\n- Tato, to przez Jagiełło!! <br />\r\n- To nie zadawaj się więcej z takim łobuzem!! ', '34', '7', 173, '4.85714285');
  25. INSERT INTO `nuke_poems` VALUES(2, 'Metallica', 'm@interia.pl', '2004-08-07 16:41:34', 'KOT', '15', 'Jasio idzie z mamą (blondynką)i zauważył kota. Pyta się mamy czy to kot, czy kotka, a ona na to: <br />\r\n- Jasiu, to kot. Nie widzisz, że ma wąsy... ', '22', '4', 184, '5.5');


Oczywiście jest tam więcej wpisów ( nie tylko 2 )
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
piaseq
post 24.01.2009, 12:33:22
Post #2





Grupa: Zarejestrowani
Postów: 161
Pomógł: 25
Dołączył: 6.09.2008
Skąd: Warszawa

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


Nie jest to zapewne rozwiązanie optymalne, ale to najprostsze co przychodzi mi do głowy. Na samym początku wykonaj zapytanie do bazy zliczające ilość dowcipów i wstaw tą wartość do rand.
Go to the top of the page
+Quote Post
wookieb
post 24.01.2009, 12:33:39
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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


--------------------
Go to the top of the page
+Quote Post
xamrex
post 25.01.2009, 15:36:07
Post #4





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

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


dzieki
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 01:37