Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: liczenie pól z datą
Forum PHP.pl > Forum > Bazy danych > MySQL
marcinj
Dzięn dobry. Przeszukałem forum i nie znalazłem odpowiedzi na swój problem. Mam tabelę z polem data_wejscia w którym przechowuję datę wejścia usera na stronę. Chciałbym za pomocą SQL wyciągnąć i policzyć wszystkich userów wchodzących np. dzisiejszego dnia. Aha format daty w polu data_wejscia to DATETIME. Czy da się to zrobić za pomoca tylko kodu SQL? W sql-u wymysliłem na razie coś takiego:
  1. <?php
  2.  
  3. $query = &#092;"SELECT DATE_FORMAT(data_wejscia,'%H') from logi WHERE data_wejscia > CURDATE() order by data_wejscia ASC\";
  4.  
  5. ?>

- co daje mi tablicę z datami godzinowymi. Może ktoś się już z tym męczył?
Oczywiście analogiczny problem mam z tygodniem, miesiącem i rokiem.
Pozdrawiam wszystkich forumowiczów -- Marcin Jaworski
JOHNY
Kod na wyswietlenie daty to
[php:1:beed115356]
<?=date('Y-m-d')?>
[/php:1:beed115356]

Spróboj w miejsce %H wpisac całą strukture która wyświetla date czyli np:
%dzień miesiąc rok czy jakoś ta albo coś w stylu %y%m%d ale nie daje głowy czy tak pojdzie

wyświetla ci godzine bo H do jak samo przez sie wskazuje Godzina
marcinj
W końcu sam wpadłem na rozwiązanie. Z tego zapytania SQL:
[sql:1:d905f6d82d]$sql = 'SELECT DATE_FORMAT( data_wejscia, '%H' ) AS 'data''
. ' FROM logi'
. ' WHERE data_wejscia > CURDATE( ) '
. ' ORDER BY data_wejscia ASC';
[/sql:1:d905f6d82d]
- uzyskujemy wszystkie pola z datą w formacie 00-23, następnie zapisuje te wyniki do tabeli i za pomocą funkcji [php:1:d905f6d82d]array_count_values()[/php:1:d905f6d82d] liczę wszystkie pozycje i zapisuję do tablicy asocjacyjnej - i już smile.gif
Poniżej reszta kodu:
[php:1:d905f6d82d]
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$tbl[] = $row[0];
}
$tbl_ass = array_count_values($tbl);
echo "<tr><td><ul>n";
foreach ($tbl_ass as $key => $val) {
echo "<li>Godzina: <b>$key</b> || Ilo&para;ć: <b>$val</b></li>n";
}
[/php:1:d905f6d82d]
Analogicznie można postąpić zliczając wszystkie rekordy z danego tygodnia, miesiąca, czy roku [kwestia napisania kodu SQL].
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.