Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Tworzenie Listy Miesięcy względem wydarzeń
Forum PHP.pl > Forum > Przedszkole
XP'ek
Witam mam taki kod getem przesyłam rok np. 2010 odczytuje go wczytuje ID i podaje je do drugiej bazy, bazy wydarzeń i teraz chce osiągnąć efekt następujący biggrin.gif w bazie mam wpisy np. na rok 2010 i miesiąc luty i 3 na kwiecień i teraz efektem zapytania ma pojawić mi się na stronie link do miesięcy w których są wpisy czyli np. w tym przypadku Luty i Kwiecień się pojawi reszta miesięcy nie. Co źle zrobiłem z kodem ? i jak osiągnąć ten efekt?


  1. $zapytanie12="SELECT * FROM `year` WHERE `year`='$year1' LIMIT 1";
  2. $wykonaj12=mysql_query($zapytanie12);
  3.  
  4. if($wiersz2=mysql_fetch_array($wykonaj12))
  5. {
  6. $year = $wiersz2['id'];
  7. }
  8.  
  9. $zapytanie12="SELECT * FROM `event` WHERE `year`='$year'";
  10. $wykonaj12=mysql_query($zapytanie12);
  11.  
  12. while($wiersz2=mysql_fetch_array($wykonaj12))
  13. {
  14. $month = $wiersz2['month'];
  15. }
  16.  
  17. switch($month){
  18. case 1:
  19. print 'Styczeń';
  20. break;
  21. case 2:
  22. print 'Luty';
  23. break;
  24. case 3:
  25. print 'Marzec';
  26. break;
  27. case 4:
  28. print 'Kwiecień';
  29. break;
  30. case 5:
  31. print 'Maj';
  32. break;
  33. default:
  34. print 'W tym roku nie było jeszcze wydarzeń.';
  35. break;
  36. }
lukaskolista
Cytat(XP'ek @ 23.12.2010, 17:18:49 ) *
Witam mam taki kod getem przesyłam rok np. 2010 odczytuje go wczytuje ID i podaje je do drugiej bazy, bazy wydarzeń
z kodu wynika, ze do innej tabeli, a nie bazy.

  1. $zapytanie12="SELECT * FROM `year` JOIN event ON event.year = year.id WHERE `year.year`='$year1'";


Swoja droga rok sam w sobie jest identyfikatorem, wiec pole id zamiast 1,2,3... moze przechowywac rok, np 2009, 2010, 2011,..., wtedy bedzie duzo latwiej, bo nie trzeba bedzie uzywac join, tylko mozna bedzie zrobic to tak
  1. $zapytanie12="SELECT * FROM event WHERE year = 2010";
XP'ek
no też tak można ale jak wyciągnąć ten miesiąc ? na dany rok z tabeli wydarzeń ?


bo nie chce mieć efektu
Rok 2010
Luty Luty Luty Marzec Maj Maj


tylko Rok 2010
Luty Marzec Maj

Ma ktoś pomysł w jaki sposób to wyciągnąć ?
tehaha
Cytat
efektem zapytania ma pojawić mi się na stronie link do miesięcy


w takim razie użyj GROUP BY month

  1. $zapytanie12="SELECT * FROM event WHERE year = 2010 GROUP BY month";


ponadto użycie switcha tutaj to słaby pomysł, lepiej nazwy miesięcy przechowywać w tablicy

  1. $month_names = array('', 'styczeń', 'luty', 'marzec');
  2.  
  3. echo $month_names[$month];
XP'ek
Dzięki o to mi właśnie chodziło biggrin.gif
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.