unieke maand/jaar + unieke id's
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:
Code (php)
1
2
3
2
3
SELECT * FROM nieuws
WHERE postdate
GROUP BY DATE_FORMAT(postdate, '%Y%m') ORDER BY postdate DESC
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?
Gewijzigd op 09/10/2011 17:43:10 door Www JdeRuijterNL
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.
-1 id
-2 id
-3 id
2010-05 postdate
-5 id
-6 id
2010-03 postdate
-4 id
Waarom zou dat onmogelijk zijn?
Gewijzigd op 09/10/2011 18:15:25 door www JdeRuijterNL
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
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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?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>";
}
}
?>
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>";
}
}
?>
Gewijzigd op 09/10/2011 23:49:08 door PH Piet