Är verkligen ingen hejjare på mysql så hoppades på att få lite hjälp här.
Det är så att jag vill hämta ut antalet medlemmar som registrerade sig från olika tidsperioder. Jag har satt upp tidsstämplarna och gjort en query och den returnerar den första querien men resten skrivs inte ut.
Här är koden:
$date['month'] = mktime(0, 0, 0, date('m'), 1, date('Y'));
$date['week'] = mktime(0, 0, 0, date('m'), date('d'), date('Y')) - ((date('N')-1)*3600*24);
$date['yesterday'] = mktime(0, 0, 0, date('m'), date('d')-1, date('Y'));
$date['today'] = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
$date['now'] = mktime(time('H'), time('i')-20, date('s'), date('m'), date('d'), date('Y'));
$members = mysql_query("(SELECT COUNT(id) AS m_total FROM accounts)
UNION
(SELECT COUNT(id) AS m_month FROM accounts WHERE registered >= '".$date['month']."')
UNION
(SELECT COUNT(id) AS m_week FROM accounts WHERE registered >= '".$date['week']."')
UNION
(SELECT COUNT(id) AS m_yesterday FROM accounts WHERE registered >= '".$date['yesterday']."')
UNION
(SELECT COUNT(id) AS m_today FROM accounts WHERE registered >= '".$date['today']."')
");
$m = mysql_fetch_assoc($members);
Den ger ett värde till m_total men allt annat får inget värde. Någon som kan hjälpa mig med detta eller rent av göra en bättre query. Som sagt, är inte så bra på MySQL.
Det din SQL-fråga returnerar är ett resultat med en kolumn, som heter m_total, med x antal rader (du kan inte vara säker på att du får ut värden för alla dina fall - union ger ett distinct resultat.)
Det enklaste är nog att köra dessa frågor som rena subqueries istället för att använda union. Skulle kunna se ut så här:
$members = mysql_query("SELECT COUNT(id) AS m_total,
(SELECT COUNT(id) FROM accounts WHERE registered >= '".$date['month']."') as m_month,
(SELECT COUNT(id) FROM accounts WHERE registered >= '".$date['week']."') as m_week,
(SELECT COUNT(id) FROM accounts WHERE registered >= '".$date['yesterday']."') as m_yesterday,
(SELECT COUNT(id) FROM accounts WHERE registered >= '".$date['today']."') as m_today FROM accounts
");
Tänk också på att m_yesterday-delen även inkluderar dagens registreringar. Är det så du vill ha det?