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 (1 - 4)
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
Ludvik
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


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. ?>
Go to the top of the page
+Quote Post
Oscar_83
post
Post #4





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

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


Dziękuje bardzo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) bardzo mi pomogliście (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pozdrawiam wszystkich (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Oscar_83 22.05.2007, 09:52:58
Go to the top of the page
+Quote Post
Pontifex_Maximus
post
Post #5





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

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: 23.08.2025 - 10:54