Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] timestamp, substr i brak powtórzeń w while
arek33
post
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 24.02.2009

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


Hej!

Mam dzisiaj taki problem: Posiadam tabelę z produktami, a w niej znajduje się kolumna data_dodania (timestamp), czyli data w formie 2013-03-03 13:52:11.

Poprzez pętlę while pobieram sobie wszystkie wyniki, jednakże potrzebny mi jest tylko rok i tylko raz. Czyli jeżeli mam 140 wyników z datą z zakresu 2012-12-12 12:12:12 - 2012-12-31 11:11:10, to chciałbym aby jednorazowo wyświetlił mi się tylko rok, czyli 2012. Tyle.

Myślałem o dodaniu DISTINCT w zapytaniu, substr oraz wyrażeniach regularnych, ale chyba myśli w mojej głowie nieci się zapętliły i potrzebuję Waszej pomocy. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Zaprzeczasz sam sobie, najpierw mówisz że trzymasz dane w formacie timestamp (ilość sekund od 1970r. do danej chwili), a potem piszesz, że trzymasz sztywną datę, zdecyduj się.
Jeśli użyłeś timestamp to wystarczy w pętli while dodać warunek php:

  1. $lata = array();
  2. $sql = "SELECT * FROM `tabela` ORDER BY timestamp";
  3. if ( !($result = mysql_query($sql)) )
  4. {
  5. die('error in sql<br>'.mysql_error());
  6. }
  7. while($row=mysql_fetch_assoc($result))
  8. {
  9. $rok_teraz_sprawdzany = date('Y', $row['timestamp']);
  10. if ( in_array($rok_teraz_sprawdzany, $lata) == FALSE )
  11. {
  12. $lata[] = $rok_teraz_sprawdzany;
  13. }
  14. }
  15.  
  16. print_r($lata); // powinno zwrócić wszystkie lata, jakie masz w bazie, bez powtórzeń


Jeśli trzymasz sztywną datę to idealnie by było rozdzielić rok od reszty i wtedy do zapytania dorzucasz GROUP BY lata i masz pojedyncze lata.

Ten post edytował Michael2318 3.03.2013, 14:24:23
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: 7.10.2025 - 12:44