2009-03-30 13 views
6

मैं एक ऑनलाइन पत्रिका चलाने के लिए और 3 आँकड़ों पर नज़र रखने के लिए एक मृत-सरल तरीका चाहते हैं:mySQL क्वेरी मेरी साइट को हर दिन प्राप्त टिप्पणियों की सूची सूचीबद्ध करने के लिए?

  1. कितनी टिप्पणियां प्रत्येक दिन रह गए हैं।
  2. मेरे उपयोगकर्ता कितने लिंक सबमिट करते हैं।
  3. मुझे हर दिन कितने नए सदस्य मिलते हैं।

यह जानकारी मेरा सभी डेटाबेस है, मुझे यकीन नहीं है कि इसे कैसे प्राप्त किया जाए।

मेरे पास 3500 टिप्पणियों के साथ "टिप्पणियां" तालिका है। प्रत्येक टिप्पणी तालिका में एक पंक्ति हो जाती है। तालिका में कॉलम में से एक "टाइमस्टैम्प" है।

मुझे लगता है कि एक तालिका है जो इस तालिका का चयन करेगी, पंक्तियों को टाइमस्टैम्प द्वारा क्रमबद्ध करें, उन्हें 24 घंटे की वृद्धि में समूहित करें और फिर प्रत्येक समूह में पंक्तियों की संख्या गिनें - मुझे बताएं कि मुझे कितनी नई टिप्पणियां मिलीं दिन।

वह प्रश्न कैसा दिखता है? मुझे लगता है कि अगर मैं पहली बार काम कर रहा था तो मैं अन्य लोगों को समझ सकता हूं।

+0

टाइमस्टैम्प कॉलम किस प्रकार का है? क्या यह वास्तविक टाइमस्टैम्प है, किसी दिनांक का दिनांक/दिनांक, या क्या यह एक आईएनटी एक यूनिक्स टाइमस्टैम्प संग्रहीत कर रहा है? – Powerlord

+0

यह एक इंट (11) है जिसमें यूनिक्स टाइमस्टैम्प है। – FGM

उत्तर

7

यह टुकड़ा एक थीम्ड तालिका में अपने परिणाम प्रदर्शित करेगा तारीख।

0

तिथियों को प्रारूपित करने के लिए date_format() फ़ंक्शन का उपयोग करें; ,

$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)); 

DATE (टाइमस्टैम्प) का उपयोग करना काम नहीं करता क्योंकि comments.timestamp UNIX_TIMESTAMP प्रारूप में है जबकि DATE() एक ASCII उम्मीद:

select count(id) as commentCount, date_format(dateColumn, '%Y-%m-%d') as commentDate 
from yourTable 
group by commentDate 
संबंधित मुद्दे