simenss Skrevet 2. mars 2005 Del Skrevet 2. mars 2005 Er det mulig å sortere en mySQL-spørring to ganger? Som f.eks: mysql_query("SELECT * FROM tabell ORDER BY dato,mail LIMIT 20"); Altså at den først henter ut 20 stk når tabellen er sortert etter dato, for så at disse 20 blir sortert etter mail Lenke til kommentar
Nervetattoo Skrevet 2. mars 2005 Del Skrevet 2. mars 2005 Nå har du jo allerede skrevet spørringen så du kunne jo bare testet da Men ja, det fungerer. Lenke til kommentar
ader Skrevet 2. mars 2005 Del Skrevet 2. mars 2005 (endret) Den koden du har der burde gjøre det du ber om Hva er galt med den? Rasmus Rimestad Endret 3. mars 2005 av Findus Lenke til kommentar
kakkle Skrevet 2. mars 2005 Del Skrevet 2. mars 2005 (endret) Hmmm... Er litt usikker på hva du mener her, men den spørringen vil ihvertfall sortere etter dato først, og hvis det er noen datoer som er like, vil den sortere etter mail... 12-12-2004 [email protected] 15-12-2004 [email protected] 15-12-2004 [email protected] 15-12-2004 [email protected] 18-12-2004 [email protected] EDIT: AJAJ Var fryktelig sein med å trykke på svar knappen... Jaja Endret 2. mars 2005 av kakkle Lenke til kommentar
audunr Skrevet 2. mars 2005 Del Skrevet 2. mars 2005 (endret) EDIT: For meg virker det som om trådstarter vil sortere tabellen etter dato, og resultatet etter mail. Da blir det litt vanskeligere. Foreslår at du først kjører: SELECT * FROM tabell ORDER BY dato LIMIT 20 Og deretter sorterer resultatet i PHP, slik: foreach (mysql_fetch_array($result) as $row) { foreach ($row as $key => $value) { $rows[$key] = $value; } } array_multisort($rows["mail"]); Se: http://www.php.net/manual/en/function.array-multisort.php Det går an å gjøre dette med bare SQL, men det er vanskeligere. I alle fall for meg å forklare her jeg sitter nå. :-) Deretter kan du printe ut $rows slik: echo '<table>' foreach ($rows as $row) { echo '<tr>'; foreach ($row as $key => $value) { echo '<td>' . $value . '</td>'; } echo '</tr>'; } echo '</table>'; Har ikke testet koden, så min feil om det ikke funker. MVH Audun Endret 2. mars 2005 av audunr Lenke til kommentar
Nervetattoo Skrevet 3. mars 2005 Del Skrevet 3. mars 2005 Ah, misforstod litt hva du ville. Da kan du gjøre det ca slik (ikke testet): SELECT * FROM tabell GROUP BY mail ASC ORDER BY dato DESC LIMIT 20 Lenke til kommentar
audunr Skrevet 3. mars 2005 Del Skrevet 3. mars 2005 Ah, misforstod litt hva du ville.Da kan du gjøre det ca slik (ikke testet): SELECT * FROM tabell GROUP BY mail ASC ORDER BY dato DESC LIMIT 20 Så det er altså det GROUP BY brukes til. :-) Hvis dette fungerer som forventet, så er det jo bare å glemme mitt forslag. MVH Audun Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå