Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak wyświetlicz wszystkie dni wpisów?, php + mysql
Saki
post
Post #1





Grupa: Zarejestrowani
Postów: 240
Pomógł: 2
Dołączył: 5.12.2010
Skąd: Fulda

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


Mam wpisy z własną datą: http://i.img.itunix.eu/zrzut_ekranu-13-1325378781.png
i z wpisów chce wyświetlicz wszystkie daty w ten sposób:

Dni (jak to zrobić, jakie zapytanie sql?):
21-12-2011
22-12-2011
23-12-2011
24-12-2011
25-12-2011

i gdy klikne na np. "24-12-2011" to wyświetlą się wpisy z tego dnia.
Jak mam zrobić aby wyświetlały się dni?


Teraz mam to:
  1. $query = mysql_query("SELECT *
  2. FROM shouts
  3. ORDER BY YEAR(sysGodzina) DESC, MONTH(sysGodzina) DESC, DAY(sysGodzina) DESC LIMIT 50");
  4.  
  5.  
  6. while($row=mysql_fetch_array($query))
  7. {
  8. $id = $row['id'];
  9. $data = date('d-m-Y', $row['sysGodzina']);
  10.  
  11. echo $id.': '.$data.'<br />';
  12.  
  13.  
  14. }

Ale to wyświetla do każdej wiadomosci datę:
1: 28-12-2011
2: 28-12-2011
3: 28-12-2011
4: 28-12-2011
5: 28-12-2011
6: 28-12-2011
7: 28-12-2011
8: 28-12-2011
9: 28-12-2011
10: 28-12-2011
11: 28-12-2011

a ja chce aby tylko raz pokazało:
28-12-2011
a potem
29-12-2011
30-12-2011
itd

Jak to zrobić?

I na koniec jak wyswietlicz wiadomości np. z dnia 29-12-2011?

Ten post edytował Saki 1.01.2012, 02:59:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
marcinpruciak
post
Post #2





Grupa: Zarejestrowani
Postów: 161
Pomógł: 9
Dołączył: 14.07.2008

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


Co do pierwszego to spróbuj tak:
  1. SELECT *
  2. FROM shouts
  3. ORDER BY YEAR(sysGodzina) DESC, MONTH(sysGodzina) DESC, DAY(sysGodzina) DESC GROUP BY sysGodzinaLIMIT 50


Drugie pytanie
Wystarczy użyć where i czasu
  1. SELECT *
  2.  
  3. FROM shouts
  4.  
  5. WHERE sysGodzina > 'czas początku dnia' AND sysGodzina < 'czas konca dnia'
Go to the top of the page
+Quote Post
Saki
post
Post #3





Grupa: Zarejestrowani
Postów: 240
Pomógł: 2
Dołączył: 5.12.2010
Skąd: Fulda

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


Cytat(marcinpruciak @ 1.01.2012, 11:00:47 ) *
Co do pierwszego to spróbuj tak:
  1. SELECT *
  2. FROM shouts
  3. ORDER BY YEAR(sysGodzina) DESC, MONTH(sysGodzina) DESC, DAY(sysGodzina) DESC GROUP BY sysGodzinaLIMIT 50



zapytanie SQL:

  1. SELECT *
  2. FROM shouts
  3. ORDER BY YEAR( sysGodzina ) DESC , MONTH( sysGodzina ) DESC , DAY( sysGodzina ) DESC
  4. GROUP BY sysGodzina
  5. LIMIT 0 , 30

MySQL zwrócił komunikat:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY sysGodzina
LIMIT 0, 30' at line 3

######################################################################


Problem rozwiązany:

  1. $result = mysql_query("SELECT * FROM shouts");
  2.  
  3. $last_date = '';
  4.  
  5. while($row = mysql_fetch_array($result))
  6. {
  7. if($last_date != date("y-m-d", $row['sysGodzina']))
  8. {
  9. $last_date = date("y-m-d", $row['sysGodzina']);
  10. $dd = date("d", $row['sysGodzina']);
  11. $mm = date("m", $row['sysGodzina']);
  12. $yy = date("Y", $row['sysGodzina']);
  13.  
  14. echo '<li> <a href="archiwum.php?d='.$dd.'&m='.$mm.'&y='.$yy.'">'.date("d-m-Y", $row['sysGodzina']).'</a> </li>';
  15. }
  16. }
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 23:45