Avatar billede elskermad.dk Nybegynder
03. oktober 2003 - 20:42 Der er 6 kommentarer og
1 løsning

avanceret sortering af udtræk fra mysql

Jeg har en kalender hvor man kan bladre igennem og se hvad man skal... men jeg vil også gerne have at man skal kunne se alle ens opgaver på én side, således at den automatisk udskriver ens opgaver sorteret efter dato/måned/år time/min men jeg vil ikke selv skulle ind og vælge datoerne...

Den skal sortere dem således at hvis der er mere end én opgave på én dag så skal den skrive dem sammen, uden at datoen kommer 2 gange... og når der så ikke er flere opgaver den dag skal den starte på en ny dag og skrive datoen og de opgaver der er den dag... Lidt svært at forklare men håber at det er til at forstå!

Det skal skrives med PHP hvis det er nødvendigt at vide :)
Avatar billede whatever Nybegynder
03. oktober 2003 - 20:46 #1
Hvordan ligger dataen i din database?
Avatar billede elskermad.dk Nybegynder
03. oktober 2003 - 20:50 #2
de ligger med en seperart kolonne for dato, måned, år, time, minut, men der er også en kolonne med time for tidspunktet (ved godt det er spild, og jeg burde nøjes med dette, men det gør jeg)
Avatar billede whatever Nybegynder
03. oktober 2003 - 20:59 #3
Prøv noget i denne retning:

$last_date = "";
$res = mysql_query("SELECT * FROM kalender ORDER BY år, måned, dato, time, minut");
while ($row = mysql_fetch_array($res)) {
    $current_date = "$row[år],$row[måned],$row[dato],$row[time],$row[minut]";
    if ($last_date != $current_date) {
        echo "<br /><br />\n<b>$row[år]-$row[måned]-$row[dato] - $row[time]:$row[minut]</b>\n";
    }
    echo "<br />Titlen på arrangementet\n";
    $last_date = $current_date;
}
Avatar billede elskermad.dk Nybegynder
03. oktober 2003 - 21:06 #4
du har ikke helt forstået det whatever :/

som det er nu skriver den datoen for hver opgave ovenover alle opgaverne!

Den skal kun skrive datoen hvis den nye opgave ikke har samme dato som den der var i forvejen...

hvis du har set "chart.dk's nyeste sites"-liste så skriver den de der er kommet den samme dag samme og dem der er en anden dag sammmen osv...
noget ligende det skal jeg bruge!
Avatar billede elskermad.dk Nybegynder
03. oktober 2003 - 21:09 #5
2003-10-3 - 4:00
test 1

2003-10-3 - 6:30
test 6

2003-10-3 - 12:00
test 5

2003-10-3 - 13:40
test 3

2003-10-3 - 15:00
test 4

2003-10-3 - 18:00
test 2


skulle bare se sådan her ud:

_2003-10-3_
4:00
test 1

6:30
test 6

12:00
test 5

13:40
test 3

15:00
test 4

18:00
test 2

også skulle den næste dag (hvis der er nogen opgave den næste dag) komme her

_2003-10-4_

blabla
Avatar billede whatever Nybegynder
03. oktober 2003 - 21:11 #6
Prøv at smide hele din kode og sql-dump til spam@beltofte.dk
Avatar billede elskermad.dk Nybegynder
04. oktober 2003 - 00:02 #7
fandt selv ud af det med denne kode:

$olddate = "";

$foresp = mysql_query("SELECT * FROM webcal_note WHERE bruger = 'nick' ORDER BY dato ASC") or die(mysql_error());
while($row = mysql_fetch_array($foresp)) {
$dato = $row["dato"];
$maned = $row["maned"];
$ar = $row["ar"];
$time = $row["hour"];
$min = $row["min"];
$besked = $row["besked"];
   
$newdate = $dato . "/" . $maned . " " . $ar;

    if ($newdate != $olddate) {
    echo"
    <br><b>$newdate</b><br>
    ";
    }
   
    echo"
    $besked<br>
    ";
   
    $olddate = $newdate;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester