Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Grupowanie rekordów. Jedna data dla kilku wyników
misio90
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.06.2012

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


Witam

Chcę zrobić terminarz, który wyświetli mi rekordy od daty, którą wyznaczę. Wszystko działa dobrze z tym, że jeżeli rekordy są z tego samego dnia wyświetla podwójnie datę.

  1. <?php
  2.  
  3. mysql_connect('localhost','root','') or die(mysql_error());
  4.  
  5. $first = '2013-10-15';
  6. //$last = '2013-10-22';
  7.  
  8. $sql = 'select * FROM tours WHERE start_tour >= '. $first.' order by start_tour asc';
  9. $res = mysql_query($sql) or die(mysql_error());
  10.  
  11.  
  12. $terminarz = array();
  13. while ($row = mysql_fetch_array($res)){
  14. $tid = $row['tour_id'];
  15.  
  16. if (!isset($terminarz[$tid]))
  17. {
  18. $terminarz[$tid] = array('start_tour' => $row['start_tour'], 'names' => array());
  19. }
  20.  
  21. if (!empty($row['name']))
  22. {
  23. $terminarz[$tid]['names'][] = array('name' => $row['name']);
  24. }
  25. }
  26.  
  27. echo '<pre>';
  28. print_r($terminarz);
  29. echo '</pre>';
  30.  
  31.  
  32. echo '<ul>';
  33.  
  34. foreach ($terminarz as $tourID => $day)
  35. {
  36. echo '<li>'.$day['start_tour'].'<ul>';
  37.  
  38. foreach ($day['names'] as $dni)
  39. {
  40. echo '<li>'. $dni['name'] .'</li>';
  41. }
  42.  
  43. echo '</ul></li>';
  44. }
  45.  
  46. echo '</ul>';
  47.  
  48. ?>


Efekt jest taki http://img818.imageshack.us/img818/4028/qlqa.png

Jak widać daty się powtarzają. Chciałbym aby w przypadku, gdy mamy kilka rekordów dla danego dnia to była jedna data i pod spodem rekordy, a nie jak teraz dwie. Kombinowałem na różne sposoby ale mi nie wychodzi. Proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Musisz grupowac dane na poziomie PHP. Tutaj pisalem jak to robic dla kilku przykladow. Postepowanie u Ciebie ma byc podobne
http://nospor.pl/grupowanie-wynikow.html

ps: widze ze juz takie grupowanie robisz dla $tid. Dokladnie taksamo musisz zrobic jeszcze dla daty


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
misio90
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.06.2012

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


@nospor ja to robiłem właśnie na podstawie Twojego artykułu. Wystarczyło zamienić
  1. $tid = $row['tour_id'];
na
  1. $tid = $row['start_tour'];
i jest GIT
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to kiepsko robilies, skoro musialem ponownie ci podac linka do tego samego arta bys wkoncu poprawil ID na DATE wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 22:23