22. januar 2004 - 20:01Der er
13 kommentarer og 1 løsning
Hvordan sorteres array's efter dato.
jeg har to array's som hver især er sorteret efter dato, men jeg skal udskrive indholdet af array'ene til skærmen således at indholdet af de to array's blandes, men sorteres efter feltet dato, hvordan gør jeg dette jeg kan sagtens udskrive det ene array efter den andet men så er de jo ikke samlede sorteret efter dato, nogen der kan hjælpe??? arayene indeholder følgende... $row_msg[dato] $row_msg[navn] $row_msg[overskrift] $row_body[dato] $row_body[navn] $row_body[overskrift]
de to tabeller indeholder ikke det samme, den ene indeholder dato, navn og den anden indeholder dato, navn, overskrift... Kan det lade sig gøre alligevel at slå op i to tabeller samtidiget??
detox-->> kan jeg bruge dit svar selvom tabellerne ikke er ens, de ser således ud: $row_msg[dato] $row_msg[navn] $row_body[dato] $row_body[navn] $row_body[overskrift]
Synes godt om
Slettet bruger
22. januar 2004 - 23:10#5
Nej, man kan kun lave en UNION på to opslag, der returnerer data af samme type, men måske kan vi fake den?
$result=mysql_query("(SELECT dato, navn, overskrift FROM tabel1) UNION (SELECT dato, navn, '' AS overskrift FROM tabel2) ORDER BY dato") or die(mysql_error()); while($row=mysql_fetch_assoc($result)){ echo $row['dato']; echo $row['navn']; if (!empty($row['overskrift'])){echo $row['overskrift'];} }
Ja, du skulle kunne bruge det alligevel. Du kan evt. lave denne tilføjelse, for at undgå notices ved tomme index. Men der er jo så kun overskrifter på den ene halvdel:
Så prøver vi bare en anden metode. Jeg går ud fra, at der godt kan være mere end
$liste=array(); $result=mysql_query("SELECT dato, navn, overskrift FROM tabel1 ORDER BY dato") or die(mysql_error()); while($row=mysql_fetch_assoc($result)){ $liste[$row['dato']][]=$row; } $result=mysql_query("SELECT dato, navn FROM tabel2 ORDER BY dato") or die(mysql_error()); while($row=mysql_fetch_assoc($result)){ $liste[$row['dato']][]=$row; } foreach($liste as $dato){ foreach($dato as $punkt){ echo $punkt['dato']; echo $punkt['navn']; if(isset($punkt['overskrift'])){echo $punkt['overskrift'];} } }
Synes godt om
Slettet bruger
23. januar 2004 - 00:05#9
Jeg kom til at sende for tidligt. Jeg var ved at skrive:
Jeg går ud fra, at der godt kan være mere end et sæt oplysninger for samme dato.
det kører fint igennem og den printer det, men den printer først det ene array sorteret efter dato dernæst det andet sorteret, jeg ville gerne ha dem fælles sorteret.
yes det er de, det funkter super nu, takker for hjælpen.
Synes godt om
Ny brugerNybegynder
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.