Versio

unieke maand/jaar + unieke id's

Overzicht Reageren

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

25/05/2012 16:53:37
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
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

Get Adobe Flash player