Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> liczenie pól z datą
marcinj
post 30.03.2004, 13:35:38
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.03.2004
Skąd: Wrocław

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


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
Go to the top of the page
+Quote Post
JOHNY
post 30.03.2004, 17:05:35
Post #2





Grupa: Zarejestrowani
Postów: 297
Pomógł: 0
Dołączył: 17.01.2003
Skąd: Tarnów

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


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
Go to the top of the page
+Quote Post
marcinj
post 1.04.2004, 07:57:37
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.03.2004
Skąd: Wrocław

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


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].


--------------------
:: Marcin Jaworski
:: Registered Linux User #229340
:: WWW: http://marcinj.pwii.pl
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 Wersja Lo-Fi Aktualny czas: 27.06.2025 - 00:43