Records groeperen naar datum

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robin

Robin

12/10/2009 19:20:00
Quote Anchor link
Beste phpers,
Ik zit met een probleempje. Ik weet niet hoe ik de records uit mijn datum kan groeperen naar datum. Ik heb nu dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql
= 'SELECT     id,naam, datum
        FROM     afmelden'
;
        
$result = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_array($result))
{

    echo $row['naam']. " - ". showdatum($row['datum']);
    echo "<br />";
}

?>

wat dit als output geeft:
Quote:
robin - dinsdag, 20 oktober 2009
sebas - dinsdag, 13 oktober 2009
sebas - donderdag, 15 oktober 2009
sebas - dinsdag, 20 oktober 2009
sebas - donderdag, 22 oktober 2009

Maar ik zou graag willen dat het als volgt wordt:
Quote:
Dinsdag, 20 oktober 2009 - Robin, Sebas
Dinsdag, 13 oktober 2009 - Sebas
etc..

Enig idee hoe ik dit het best kan aanpakken?
Alvast bedankt.
Robin
Gewijzigd op 01/01/1970 01:00:00 door Robin
 
PHP hulp

PHP hulp

29/11/2024 10:44:35
 
Ralph

Ralph

12/10/2009 19:29:00
Quote Anchor link
Het sorteren kun je in je sql query oplossen met:

$sql = 'SELECT id,naam, datum
FROM afmelden ORDER BY datum ASC';

De asc staat hierbij voor ascending (oplopend) mocht je andersom willen sorteren gebruik dan Desc (decending, aflopend)

Voor de weergave moet je gewoon het weergeven van naam en datum omdraaien in de echo.
 

12/10/2009 19:33:00
Quote Anchor link
Kijk naar GROUP BY. Heb verkeerd gelezen.
Je slaat die datum toch wel in een date format op?
Gewijzigd op 01/01/1970 01:00:00 door
 
Robin

Robin

12/10/2009 19:35:00
Quote Anchor link
Ik sla hem op als UNIX Timestamp.

EDIT: op de manier van Ralph order ik hem alleen maar, ik wil ze echt per datum hebben, dus per datum 1 regel.
Gewijzigd op 01/01/1970 01:00:00 door Robin
 
TJVB tvb

TJVB tvb

12/10/2009 19:49:00
Quote Anchor link
Dat kun je dan toch in php aan elkaar knopen? Anders wil je dus rijen van verschillende lengtes terug krijgen, dat wordt wel heel lastig voor je database.
 
Robin

Robin

12/10/2009 19:57:00
Quote Anchor link
Dat is het hem nou juist, ik ben php nog aan het leren. Zou je misschien een kort voorbeeld voor me kunnen maken of een website geven waar wordt uitgelegd wat ik moet doen?

Alvast bedankt,
Robin
 
Jan Koehoorn

Jan Koehoorn

12/10/2009 20:58:00
Quote Anchor link
Het wordt zoiets (code niet getest):
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
<?php
    $sql
= "
        SELECT id, naam, datum
        FROM afmelden
        ORDER BY datum DESC
    "
;
    if (!$res = mysql_query ($sql)) {
        trigger_error (mysql_error ());
    }

    else {
        $oude_datum = null;
        $nieuwe_datum = null;
        while ($row = mysql_fetch_assoc ($res)) {
            $nieuwe_datum = strftime ('%F', $row['datum']);
            if ($nieuwe_datum != $oude_datum) {
                $oude_datum = $nieuwe_datum;
                echo '<p>' . $nieuwe_datum . '</p>';
            }

            echo '<p>' . $row['naam'] . '</p>';
        }
    }

?>
 
Robin

Robin

12/10/2009 21:28:00
Quote Anchor link
Geweldig! Works like a charm. Heel erg bedankt!
 
Jan Koehoorn

Jan Koehoorn

12/10/2009 21:56:00
Quote Anchor link
Graag gedaan :-)
 



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.