Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] podział rekordów
Forum PHP.pl > Forum > Przedszkole
LifeGuard
Witam
chciałbym wyświetlić dane z bazy danych tak aby rekordy z datą danego miesiąca były oddzielone od dat innego miesiąca.

mam teraz tak wyświetlane dane (datę przechowuje w DATETIME)


LP | nazwa | _data__ |
------------------------------
1. | rekord1 | 10.01.10 |
2. | rekord2 | 11.01.10 |
3. | rekord3 | 12.01.10 |
4. | rekord4 | 01.02.10 |
5. | rekord5 | 03.02.10 |
6. | rekord6 | 04.02.10 |

a potrzebuje zrobić separator (miesiąca) jak poniżej

LP | nazwa | _data__ |
------------------------------
1. | rekord1 | 10.01.10 |
2. | rekord2 | 11.01.10 |
3. | rekord3 | 12.01.10 |
------------------------------ <-- tutaj podział (np border:1px w css)
4. | rekord4 | 01.02.10 |
5. | rekord5 | 03.02.10 |
6. | rekord6 | 04.02.10 |


rozbijanie tego na 12 zapytań nie ma sensu, poza tym sposób nieodporny na zmianę roku

ma ktoś pomysł lub sposób jak to ugryźć?
siedzę i kombinuję i zaćmienie

z góry dzięki
Mustava
Może :

  1. $miesac_old="";
  2. while ($row=mysql_fetch_row($result)){
  3. $miesiac=substr($row[_data__],5,2);//wyciągnąć nr miesiąca
  4. if (($miesiac!=$miesiac_old)&&($miesiac_old!="")) {<echo"<HR>";}
  5. $old_miesac=$miesiac;
  6. }
Kshyhoo
Albo:
  1. if (mysql_connect($sql_serwer, $sql_login, $sql_haslo) and mysql_select_db($sql_baza)) {
  2. $wynik = mysql_query("SELECT * FROM tabela ORDER BY miesiac DESC");
  3. }
  4.  
  5. if ($wynik) {
  6. // przetworzenie danych do postaci tablicy asocjacyjnej
  7. while($dane = mysql_fetch_array($wynik)) {
  8. $miesiac = trim($dane["miesiac"]);
  9. $tekst = trim($dane["tekst"]);
  10. if ($miesiac_poprzedni<>strtolower($miesiac)) {
  11. $miesiac_poprzedni = strtolower($miesiac);
  12. $klucz = $miesiac;
  13. }
  14. $t[$klucz][] = $tekst;
  15. }
  16.  
  17. // utworzenie tabeli na podstawie tablicy asocjacyjnej
  18. echo "<table border='1' cellpadding='3' cellspacing='0'>";
  19. foreach($t as $klucz=>$wartosc) {
  20. echo "<tr><td style='vertical-align:top;'>$klucz</td><td>";
  21. foreach($t[$klucz] as $wartosc) {
  22. echo "$wartosc<br />";
  23. }
  24. echo "</td></tr>";
  25. }
  26. echo "</table>";
  27.  
  28. }
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.