Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> petla warunkowa na elementach tablicy
engine
post 30.05.2005, 16:03:56
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.05.2005

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


Witam. Mam stworzona baze wydarzen (imprezy). Nie moge poradzic sobie ze skryptem ktory pokazywalby 3 najblizsze imprezy. Dane z bazy SQL sa dobrze wczytywane, jednak skrypt wisi na warunku IF. Dla przykladu wrzucilem sobie do bazy 6 imprez wiec nie ma za duzo do myslenia. Jednak skrypt wisi. Czy moze mi ktos wytlumaczyc co robie nie tak, ewentualnie poprawic ten skrypt:

  1. <?php
  2.  
  3. $akt_rok = 2005;
  4. $akt_mies = 8;
  5. $akt_dzien = 21;
  6.  
  7. print &#092;"<tr><td><br><br>Baza koncertow:<br><br></td></tr>\";
  8.  
  9. $i=0;
  10. while ($rekord = mysql_fetch_array ($wynik)) {
  11. $id = $rekord[0];
  12. $dzien = $rekord[1];
  13. $miesiac = $rekord[2];
  14. $rok = $rekord[3];
  15. $miasto = $rekord[4];
  16. $miejsce = $rekord[5];
  17. $godzina = $rekord[6];
  18.  
  19. print &#092;"<TR><TD>$dzien.$miesiac.$rok</TD><TD>$miasto</TD><TD>$miejsce</TD><TD>$godzina</TD></TR>n\";
  20.  
  21. $tablica[$i][0] = $id;
  22. $tablica[$i][1] = $dzien;
  23. $tablica[$i][2] = $miesiac;
  24. $tablica[$i][3] = $rok;
  25. $tablica[$i][4] = $miasto;
  26. $tablica[$i][5] = $miejsce;
  27. $tablica[$i][6] = $godzina;
  28.  
  29. $i++;
  30.  
  31. }
  32.  
  33.  
  34. $wers=0;
  35.  
  36. while($wers < 3) {
  37.  
  38. for($a=0; $a<$i; $a++) {
  39.  
  40. if(($tablica[$a][3] == $akt_rok) && ($tablica[$a][2] == $akt_mies) && ($tablica[$a][1] == $akt_dzien)) {
  41.  
  42.  
  43. $tab3[$wers][1] = $tablica[$a][1]; // dzien
  44. $tab3[$wers][2] = $tablica[$a][2]; // miesiac
  45. $tab3[$wers][3] = $tablica[$a][3]; // rok
  46. $tab3[$wers][4] = $tablica[$a][4]; // miasto
  47. $tab3[$wers][5] = $tablica[$a][5]; // miejsce
  48. $tab3[$wers][6] = $tablica[$a][6]; // godzina
  49. $wers++;
  50. $akt_dzien++;
  51. if( $akt_dzien > 31) {
  52. $akt_dzien = 1;
  53. $akt_mies++;
  54. if ($akt_mies > 12) {
  55. $akt_mies = 1;
  56. $akt_rok++;
  57. }
  58. }
  59.  
  60. }
  61. }
  62.  
  63.  
  64.  
  65.  
  66. }
  67.  
  68.  
  69. ?>



Na koniec 3 najblizsze imprezy chce odczytac z tabeli $tab3 (pierwsze 3 elementy)
Z gory dziekuje
Go to the top of the page
+Quote Post
nospor
post 30.05.2005, 16:07:42
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




robisz while ($wers<3). $wers zwiększasz warunkowo. Najwyraźniej nie wchodzi ci w ten warunek (wystarczajaco ilosc razy)


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
engine
post 30.05.2005, 16:40:20
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.05.2005

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


Juz wiem gdzie tkwi blad. Poprawiony skrypcik:

  1. <?php
  2.  
  3. while($wers < 3) {
  4.  
  5. for($a=0; $a<6; $a++) {
  6.  
  7. if(($tablica[$a][3] == $akt_rok) && ($tablica[$a][2] == $akt_mies) && ($tablica[$a][1] == $akt_dzien)) {
  8.  
  9.  
  10. $tab3[$wers][1] = $tablica[$a][1]; // dzien
  11. $tab3[$wers][2] = $tablica[$a][2]; // miesiac
  12. $tab3[$wers][3] = $tablica[$a][3]; // rok
  13. $tab3[$wers][4] = $tablica[$a][4]; // miasto
  14. $tab3[$wers][5] = $tablica[$a][5]; // miejsce
  15. $tab3[$wers][6] = $tablica[$a][6]; // godzina
  16. $wers++;
  17. break;
  18.  
  19. }
  20. }
  21. $akt_dzien++;
  22. if( $akt_dzien > 31) {
  23. $akt_dzien = 1;
  24. $akt_mies++;
  25. if ($akt_mies > 12) {
  26. $akt_mies = 1;
  27. $akt_rok++;
  28. }
  29. }
  30.  
  31.  
  32.  
  33. }
  34.  
  35. ?>
Go to the top of the page
+Quote Post
nospor
post 30.05.2005, 16:43:23
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a nie prościej by ci bylo tych trzech imprez zapytaniem pobrać? nie trzeba potem zadnych skryptów pisać.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ociu
post 30.05.2005, 18:40:09
Post #5





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




  1. SELECT *
  2. FROM imprezy ORDER BY DATA DESC LIMIT 3
Go to the top of the page
+Quote Post
engine
post 31.05.2005, 12:49:21
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.05.2005

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


Dzieki chlopaki, ale moze cos jasniej. Jestem zielony tongue.gif . Jak zauwazyliscie data w mojej bazie jest zapisywana w trzech komorkach
Go to the top of the page
+Quote Post
nospor
post 31.05.2005, 12:50:53
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://forum.php.pl/index.php?showtopic=31...=0&#entry177498


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
engine
post 31.05.2005, 13:06:17
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.05.2005

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


Chwała dla Was biggrin.gif Nie sądziłem , ze otrzymam tak szybko odpowiedz. 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: 26.06.2025 - 18:03