Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] priorytet banerów - losowanie
Forum PHP.pl > Forum > Przedszkole
Gość_żaba_*
witam

pisze sobie skrypcik rotatora banerów wraz z priorytetami wyświetleń.

Założenie jest takie że banery są oznaczone 1 - niski priosytet, 2 - średni, 3 - wysoki.

no i losuje sobie liczbę z przedziału 1-6. jeżeli wylosuje 1 - to ma losować baner z puli niskich, jeżeli 2 lub 3 to ze średnich, a jeżeli 4,5 lub 6 to z wysokich.

przedstawiam kod:

  1. <?php
  2. $losowa = rand(1, 6);
  3.  
  4. if ($losowa == "1")
  5. {
  6. $warunek = 1;
  7. }
  8. elseif ($losowa == "2" || $losowa == "3")
  9. {
  10. $warunek = 2;
  11. }
  12.  
  13. else
  14.  
  15. {
  16. $warunek = 3;
  17. }
  18.  
  19. $zapytanie = mysql_query("SELECT * FROM rotator WHERE priorytet = "$warunek" ORDER BY rand{} LIMIT 1") or die ("Wykonanie zapytania nie powiodło się");
  20. $baner = mysql_fetch_array($zapytanie);
  21. $ilosc_banerow = mysql_numrows($zapytanie);
  22.  
  23. if ($ilosc_banerow != 0)
  24. {
  25. // pokaz baner
  26. }
  27. else
  28. {
  29. // i tu ma tak jakby wrocic na sam poczatek skryptu aby znow wylosowac jakas liczb
    e
  30. }
  31. ?>


rozumiecie o co mi chodzi ? ze jak w puli banerów nie będzie żadnego banera o wylosowanym priorytecie to ma zacząć jesczze raz system losowania. Jak rozwiązać taki problem questionmark.gif

pozdrawiam
NuLL
Zwyczajnie - rekurencja dla przykladu - jest o tym w kazdej ksiazce o programowaniu smile.gif
kwiateusz
ja sobie tak myśle że w funkcje bym to zamknął i po prostu wywołał samą siebie gdyby nie było bannerów ...
Gość_żaba_*
będe musiał poczytać o rekurencji smile.gif a tym czasem wpadł mi do głowy pomysł aby zamknąć to w pętli while smile.gif i zwiększyć warunek tylko jak będą banery (wtedy mają się pokazać) a jak nie to pętla wykona się jeszcze raz smile.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.