Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z wyswietleniem danych sortowanych po dacie
Forum PHP.pl > Forum > Przedszkole
Xeroboj
Witam.

Posiadam Następujacy kod

  1. <?php
  2.  
  3. /* zapytanie do konkretnej tabeli */
  4.  
  5. $wynik = mysql_query("SELECT * FROM typy WHERE nick='$nick'")
  6. or die('Błąd zapytania');
  7.  
  8.  
  9. /*
  10. wyświetlamy wyniki,
  11. */
  12.  
  13. if(mysql_num_rows($wynik) > 0) {
  14. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  15. echo "<table cellpadding=\"2\" border=0>";
  16. while($r = mysql_fetch_array($wynik)) {
  17. echo "<tr>";
  18. echo "<td>".$r[2]."</td>";
  19. echo "<td> VS </td>";
  20. echo "<td>".$r[3]."</td>";
  21. echo "<td> Typujemy Na: </td>";
  22. echo "<td>".$r[4]."</td>";
  23. echo "<td>Z Wynikiem Równym: </td>";
  24. echo "<td>".$r[6]."</td>";
  25.  
  26. echo "</tr>";
  27. }
  28. echo "</table>";
  29. }
  30.  
  31. ?>
  32.  


i teraz pojawia się problem mianowicie jak narazie wyswietlam dane zawarte w bazie danych w tabeli jeden za drugim a chce osiagnac grupowanie wynikow po dacie rowniez zapisane w sql

  1.  
  2. id
  3. nick
  4. gospodarz
  5. gosc
  6. lepszy
  7. DATA
  8. wynik


mialo by to wygladac mniej wiecej tak Data wpisu powiedzmy 2012-04-03 na srodku strony i podspodem to co podalem w pierwszym kodzie php i tak dalej kolejna data z dnia nastepnego.
Przepraszam za nie lad ale szczerze powiem sam nie wiem jak mam to opisac aby bylo zrozumiale.

ps. nie oczekuje gotowego rozwiazania chodz nie ukrywam ze walcze z tym od jakiegos czasu i juz powoli trace sily oneeyedsmiley02.png
Bateria
  1. $wynik = mysql_query("SELECT * FROM typy WHERE nick='$nick' ORDER BY data")


A co do sortowania w bazie danych, to chyba PHPMyAdmin może to zrobić.
thek
Jeśli ma się to tyczyć konkretnej daty to użyj w dodatkowo w WHERE porównania do daty i określ ją, w stylu mniej więcej WHERE nick = '$nick' AND data = '$data', ale myślę, że prościej będzie ustawić te daty w kolejności malejącej, czyli dać za where sortowanie po dacie malejąco, a więc ORDER BY data DESC.

Co do wstawienia na stronę to jeśli robisz to w wersji gdy masz konkretną datę wybraną to tylko przed while daj
  1. <tr><td colspan="tu ilość wszystkich kolumn">Jakaś data wybrana</td></tr>

Jeśli masz posortowane, to najlepiej mieć pomocniczą zmienną z datą i w przypadku wykrycia w nowym wierszu innej daty w porównaniu do ostatniego wiersza musisz wstawić dodatkowy wiersz z nową datą.

Jak by to mogło wyglądać? Przykładowo masz daty w formacie RRRR-MM-DD:
  1. <?php
  2. $temp = '1970-01-01';
  3. if(mysql_num_rows($wynik) > 0) {
  4. ?>
  5. <table cellpadding="2" border=0>
  6. <?php
  7. while($r = mysql_fetch_assoc($wynik)) {
  8. if($r['DATA'] != $temp) {
  9. ?>
  10. <tr><td colspan="7" style="text-align:center;"><?php echo $r['DATA']; ?></td></tr>
  11. <?php
  12. $temp = $r['DATA'];
  13. }
  14. ?>
  15. <tr>
  16. <td><?php echo $r['gospodarz']; ?></td>
  17. <td>VS</td>
  18. <td><?php echo $r['gosc']; ?></td>
  19. <td>Typujemy Na:</td>
  20. <td><?php echo $r['lepszy']; ?></td>
  21. <td>Z Wynikiem Równym:</td>
  22. <td><?php echo $r['wynik']; ?></td>
  23. </tr>
  24. <?php
  25. }
  26. ?>
  27. </table>
  28. <?php
  29. }
  30. ?>
Xeroboj
I właśnie o to mi chodzilo oneeyedsmiley02.png
Dziękuje za pomoc napewno zgłoszę się jeśli będe miał z czymś jeszcze problem.
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.