unieke maand/jaar + unieke id's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Www JdeRuijterNL

www JdeRuijterNL

09/10/2011 17:33:34
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
    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?
Gewijzigd op 09/10/2011 17:43:10 door Www JdeRuijterNL
 
PHP hulp

PHP hulp

28/01/2021 02:42:16
 
Jacco Brandt

Jacco Brandt

09/10/2011 17:38:43
Quote Anchor link
En hoe zie je de output voor je?
 
Www JdeRuijterNL

www JdeRuijterNL

09/10/2011 17:43:53
Quote Anchor link
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
 
Jacco Brandt

Jacco Brandt

09/10/2011 18:02:08
Quote Anchor link
Maar nu maak je 3 kolommen van 1 kolom, dat is onmogelijk.
 
Www JdeRuijterNL

www JdeRuijterNL

09/10/2011 18:12:27
Quote Anchor link
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?
Gewijzigd op 09/10/2011 18:15:25 door www JdeRuijterNL
 
Jacco Brandt

Jacco Brandt

09/10/2011 19:00:04
Quote Anchor link
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`
 
Www JdeRuijterNL

www JdeRuijterNL

09/10/2011 19:04:43
Quote Anchor link
Misschien dat dit beter via php opgelost kan worden dan via MySQL
 
PH Piet

PH Piet

09/10/2011 23:48:27
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>";
        }
    }

?>
Gewijzigd op 09/10/2011 23:49:08 door PH Piet
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.