Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]kalendarz spotkań meczowych, wypisywanie daty i nr kolejki co 5 przejście pętli
Oscar_83
post
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 10.05.2007

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


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.

Ten post edytował Oscar_83 17.05.2007, 19:06:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pontifex_Maximus
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 21.05.2007

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


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) :-)
Go to the top of the page
+Quote Post
Pontifex_Maximus
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 21.05.2007

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


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ę:-)
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 00:14