Goedenmiddag allen.

Ik zit met het volgende, ik wil een archief pagina maken die sorteert op maand+jaar

Groffe schets van mijn DB:

tbl = nieuws
----------------------------
Jaar+ Maand(postdate) | id |
----------------------------
2009 09 | 1 |
2009 09 | 2 |
2009 09 | 3 |
2010 03 | 4 |
2010 05 | 5 |
2010 05 | 6 |
---------------------------

Ik wil eigenlijk voor iedere unieke maand+jaar combinatie alle unieke id's sorteren.

Tot zover ben ik gekomen:


	SELECT * FROM nieuws
	WHERE postdate
	GROUP BY DATE_FORMAT(postdate, '%Y%m')  ORDER BY postdate DESC


Hierbij krijg ik dus wel alle unieke maand+jaar zonder dat ik dus alle unieke id's krijg.
2009
-1

2010
-4

Terwijl ik het zo wil
2009
-1
-2
-3

2010
-4
-5
-6



wie kan mij helpen?
En hoe zie je de output voor je?
Jacco Brandt op 09/10/2011 17:38:43

En hoe zie je de output voor je?


heb het bericht even wat beter aangepast + output
Maar nu maak je 3 kolommen van 1 kolom, dat is onmogelijk.
2009-09 postdate
-1 id
-2 id
-3 id

2010-05 postdate
-5 id
-6 id

2010-03 postdate
-4 id

Waarom zou dat onmogelijk zijn?
Omdat je zo dynamisch meerdere kolommen wilt maken. MySQL accepteert alleen een vast aantal kolommen.

Je kunt dit echter wel krijgen:
id:1 - 2009-09
id:2 - 2009-09
id:3 - 2009-10

dmv
SELECT id, DATE_FORMAT(postdate, "%Y%m") AS `date` FROM `nieuws` ORDER BY `postdate`
Misschien dat dit beter via php opgelost kan worden dan via MySQL
Oke, ik probeer het te begrijpen.
Je voegt een nieuw bericht toe aan je nieuwsarchief.
ID wordt dus met 1 verhoogd en de datum komt er bij van je post.

Is het zoiets dat je zoekt? ...

2009-09 | 1
2009-09 | 2
2009-09 | 3
2010-03 | 4
2010-05 | 5
2010-05 | 6

<?php

ini_set('display_errors', 'On');
error_reporting(E_ALL);

mysql_connect("localhost", "root", "phpiet91") or die(mysql_error());
mysql_select_db("mysql") or die(mysql_error());

$sql = "SELECT id, postdate FROM nieuws ORDER BY id";

if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo 'Geen resultaten gevonden';
}
else
{
while($row = mysql_fetch_assoc($res))
{
echo substr ($row['postdate'], 0, 7) . " | " . $row['id'] . "<br>";
}
}
?>

Reageren