Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]kalendarz spotkań meczowych
Forum PHP.pl > Forum > PHP
Oscar_83
Witam, próbuje zrobić kalendarz spotkań meczowych, może wrzuce kawałek kodu:
  1. <?php
  2. $query = "SELECT data, kolejka, druzyna_a, druzyna_b, wynik_a, wynik_b FROM kalendarz
    _spotkan ORDER BY kolejka ASC"
    ;
  3. $results = mysql_query($query) or die (mysql_error());
  4. while ($row = mysql_fetch_array($results)) {
  5. echo $row['data'];
  6. echo "&nbsp &nbsp &nbsp ";
  7. echo $row['kolejka'];
  8. echo "<br>";
  9. echo $row['druzyna_a'];
  10. echo " - ";
  11. echo $row['druzyna_b'];
  12. echo "&nbsp &nbsp &nbsp ";
  13. echo $row['wynik_a'];
  14. echo " - ";
  15. echo $row['wynik_b'];
  16. echo "<br>";
  17. };
  18. ?>

przy takim kodzie 4 przejścia pętli dają mi coś takiego:
2007-04-01 1
OSP Karolew - CF Helios Szczecin 5 - 3
2007-04-01 1
Tyszanka - kazikFC 3 - 0
2007-04-01 1
Cidry Edinburgh - AC Prezbiter 5 - 2
2007-04-01 1
Oscary - FC Atole 6 - 2

to jest cała pierwsza kolejka (4 mecze), a chciałbym żeby to wyglądało tak:
2007-04-01 1
OSP Karolew - CF Helios Szczecin 5 - 3
Tyszanka - kazikFC 3 - 0
Cidry Edinburgh - AC Prezbiter 5 - 2
Oscary - FC Atole 6 - 2

czyli chciałbym żeby date i nr kolejki pokazywało mi co 5 przejście pętli, wtedy gdy się zmienia ta data i nr kolejki, wie ktoś może jak to zrobić?? I najlepiej żeby po tym ukazaniu 4 meczy przed nową datą i nr kolejki zrobiło tak ze 2 odstępy pionowe. Da się coś takiego zrobić? a może mam jakoś przebudować bazę danych żeby coś takiego było możliwe??
bardzo proszę o pomoc, gdyż jestem początkującym w tworzeniu stron.

temat został przeniesiony z przedszkola, może tu ktoś mi poradzi.
Pontifex_Maximus
Można to zrobić na przykład tak:

  1. <?php
  2.  
  3. $kalendarz_spotkan[] = array();
  4.  
  5. $query = 'SELECT data, kolejka, druzyna_a, druzyna_b, wynik_a, wynik_b
  6. FROM kalendarz_spotkan ORDER BY kolejka ASC';
  7.  
  8. $results = mysql_query($query) or die (mysql_error());
  9.  
  10. while ($row = mysql_fetch_array($results)) {
  11.  
  12. $kalendarz_spotkan[] = array('data' => $row['data'],
  13.  'kolejka' => $row['kolejka'],
  14.  'druzyna_a' => $row['druzyna_a'],
  15.  'druzyna_b' => $row['druzyna_b'],
  16.  'wynik_a' => $row['wynik_a'],
  17.  'wynik_b' => $row['wynik_b']);
  18. }
  19.  
  20. $i = 0;
  21. foreach($kalendarz_spotkan as $spotkanie) {
  22.  
  23. if ( $i % 4 == 0 ) {
  24.  
  25. echo '<br><br>';
  26. }
  27.  
  28. if ( $i == 0 || $i % 4 == 0 ) {
  29.  
  30. echo ($spotkanie['data'].' '.$spotkanie['kolejka'].'<br>');
  31. }
  32.  
  33. echo ($spotkanie['druzyna_a'].' - '.$spotkanie['druzyna_b'].' '.
  34. $spotkanie['wynik_a'].' - '.$spotkanie['wynik_b'].'<br>');
  35.  
  36. $i++;
  37. }
  38.  
  39. ?>


Gdy odbierasz informacje z bazy danych, to najpierw wrzuć je do tablicy i dopiero potem przetwarzaj (przyda Ci się ten nawyk w przyszłosci) :-)
Ludvik
Akurat w tym przypadku to strata pamięci. Można to zrobić bez pomocniczej tabeli...
  1. <?php
  2. $query = "SELECT data, kolejka, druzyna_a, druzyna_b, wynik_a, wynik_b FROM kalendarz
    _spotkan ORDER BY kolejka ASC"
    ;
  3. $results = mysql_query($query) or die (mysql_error());
  4.  
  5. $i = 0;
  6.  
  7. while ($row = mysql_fetch_array($results)) {
  8. if ($i % 4 == 0) {
  9. echo $row['data'];
  10. }
  11. echo "&nbsp &nbsp &nbsp ";
  12. echo $row['kolejka'];
  13. echo "<br>";
  14. echo $row['druzyna_a'];
  15. echo " - ";
  16. echo $row['druzyna_b'];
  17. echo "&nbsp &nbsp &nbsp ";
  18. echo $row['wynik_a'];
  19. echo " - ";
  20. echo $row['wynik_b'];
  21. echo "<br>";
  22. $i++;
  23. };
  24. ?>
Oscar_83
Dziękuje bardzo smile.gif bardzo mi pomogliście smile.gif pozdrawiam wszystkich smile.gif
Pontifex_Maximus
Cytat(Pontifex_Maximus @ 22.05.2007, 01:24:55 ) *
Gdy odbierasz informacje z bazy danych, to najpierw wrzuć je do tablicy i dopiero potem przetwarzaj (przyda Ci się ten nawyk w przyszłosci) :-)


Miałem na myśli ogólną zasadę podziału aplikacji na warstwy. Kolega za kilka(naście) miesięcy być może dowie się czym są np. Smarty, co to jest framwork, MVC etc. Oczywiście można zrobić wszystko razem (tak jak pokazałeś) i zgadzam się, że jest to rozwiązanie szybsze, potrzebujące mniej pamięci itd, ale robiąc tak, jak w moim przykładzie będzie mu kiedyś dużo łatwiej przejść na wyższy poziom rozwoju:-) i o to chyba w tym wszystkim chodzi... a może się mylę:-)
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.