2009-03-30 11 views
6

Ben bir online dergi koşmak ve 3 ölçümleri takip etmek ölü basit bir yol istiyorum:mySQL Sitemde her gün alınan yorumların sayısını listelemek için Sorgu mu?

her gün bırakılan kaç yorum
  1. .
  2. Kullanıcılarımın gönderdiği bağlantı sayısı.
  3. Her gün kaç yeni üye alıyorum.

Bu bilgi benim veritabanımdır, nasıl elde edileceğinden emin değilim.

Yaklaşık 3500 yoruma sahip bir "yorum" tablosum var. Her yorum, tabloda bir satır alır. Tablodaki sütunlardan biri "zaman damgası" dır.

Bu tabloyu seçecek, satırları zaman damgasına göre sıralayabildiğimiz, 24 saatlik artışlarla gruplandıracağınız ve her gruptaki satır sayısını belirten bir sorgu olduğunu varsayalım. gün.

Bu sorgu nasıl görünüyor? İlk çalıştığı taktirde diğerlerini anlayabileceğimi düşünüyorum.

+0

Zaman damgası sütunu ne tür? Gerçek bir TIMESTAMP, bir çeşit DATE/DATETIME mı, yoksa bir unix zaman damgasını depolayan bir INT mi? – Powerlord

+0

Bir Unix zaman damgası içeren bir int (11) 'dir. – FGM

cevap

7

Bu fragman temalı bir tabloda sonuçları görüntüler tarihi.

0

Tarihleri ​​biçimlendirmek için date_format() işlevini kullanın; TARİH() Bir ASCII beklediğini, oysa comments.timestamp UNIX_TIMESTAMP biçiminde olduğu için çalışmıyor TARİH (zaman damgası) kullanarak

$sq = 'SELECT COUNT(*) cnt, DATE(FROM_UNIXTIME(timestamp)) day ' 
    . 'FROM {comments} c ' 
    . 'GROUP BY 2 ' 
    . 'ORDER BY 2 DESC'; 
$q = db_query($sq); 
$stats = array(); 
while ($o = db_fetch_object($q)) { 
    $stats[$o->day] = array($o->day, $o->cnt); 
} 
return theme('table', NULL, $stats)); 

:

select count(id) as commentCount, date_format(dateColumn, '%Y-%m-%d') as commentDate 
from yourTable 
group by commentDate