unieke maand/jaar + unieke id's
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:
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?
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.
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?
-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
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`
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
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




