webForumDet fria alternativet

månadsproblem

3 svar · 450 visningar · startad av tanten

tantenMedlem sedan nov. 20051 596 inlägg
#1

Här får jag ut alla månader som finns i databasen

try{
 $stmt = $pdo->prepare("SELECT DATE_FORMAT( datum, '%Y' ) AS year, DATE_FORMAT( datum, '%M' ) AS month FROM news
GROUP BY year,month 
ORDER BY datum DESC 
 ");
    $stmt->execute();
    while ($result = $stmt->fetch(PDO::FETCH_OBJ))
        {
	     echo "<dd><a href=\"";
         echo strftime("%B", strtotime($result->month));
         echo ".php\">";
         echo strftime("%B", strtotime($result->month));
         echo "</a></dd>\n";

Men om jag då försöker få ut bara månaderna 2008 och byter ut selecten med

SELECT DATE_FORMAT( datum, '%Y' ) AS year, DATE_FORMAT( datum, '%M' ) AS 
MONTH FROM news
WHERE datum >= '2008-01-01'
GROUP BY MONTH 
ORDER BY datum DESC

Så blir outputen 7 stycken januari. I phpMyAdmin blir det rätt.
Varför?

K@llenMedlem sedan mars 20032 667 inlägg
#2

Vad händer om du modifierar din fråga lite:

SELECT DATE_FORMAT( datum, '%Y' ) AS year, DATE_FORMAT( datum, '%M' ) AS 
MONTH FROM news
WHERE YEAR(datum) = YEAR('2008-01-01')
GROUP BY MONTH 
ORDER BY datum DESC
tantenMedlem sedan nov. 20051 596 inlägg
#3

Då blir det tomt och i phpmyadmin blir det "MySQL returnerade ett tomt resultat (dvs inga rader)".

tantenMedlem sedan nov. 20051 596 inlägg
#4

Nu fick jag det att fungera med

SELECT DATE_FORMAT( datum, '%M' ) AS 
month FROM news
WHERE datum >= '2008-01-01'
GROUP BY month 
ORDER BY datum DESC

dvs month med gemener, och ta bort året i date_format.
Kan inte precis påstå att jag förstår varför casesensitiv i ena fallet men inte i det andra... :q .

271 ms totalt · 3 externa anrop · v20260731065814-full.16f3d68c
135 ms — hämta forumlista (db)
127 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)