Avatar billede sjh Nybegynder
03. januar 2004 - 03:16 Der er 10 kommentarer og
2 løsninger

Order input rækkefølge

Hvordan får jeg den her til at komme ud i samme rækkefølge som ID kommer ind??

"SELECT * FROM forum_question WHERE ID = '1' OR ID = '9' OR ID = '3';"

Den her kommer ud som:
1
3
9

men den skal komme ud sådan:
1
9
3
Avatar billede dsj Nybegynder
03. januar 2004 - 04:07 #1
Hvis du vil have dem ud i en given rækkefølge, bliver du nødt til at have en kolonne, du kan sortere med, ved at bruger "...ORDER BY kolonne_navn", ellers vælger MySQL selv rækkefølgen...
Avatar billede sjh Nybegynder
03. januar 2004 - 04:13 #2
Det var bare for ikke at køre en SQL-String 5 gange :)

http://www.eksperten.dk/spm/445307
Kommentar: sjh
01/01-2004 16:22:44
Avatar billede Slettet bruger
03. januar 2004 - 09:17 #3
Du kan jo samle dem op i et array, og bagefter bruge arrayet i den rækkefølge du vil.
Avatar billede dsj Nybegynder
03. januar 2004 - 12:31 #4
Hvis ikke du har en kolonne at sortere efter, bliver du nødt til at køre 3 select's. Der er ingen anden løsning og hvis de 3 select's olle indeholder joins (det gør din ikke), tager det ikke lang tid med 3 i stedet for 1.
Avatar billede sjh Nybegynder
03. januar 2004 - 16:49 #5
okææ.. jeg har lige et spørgsmål eil sandbox < hvordan laver man et nyt Array i PHP??

loop...

$i++;
$arrID[$i] = New Array("noget");

loop...

Du skal nok få 30 point for det.. sammen med dsj :-)
Avatar billede dsj Nybegynder
03. januar 2004 - 17:01 #6
$arrID[$i] = "noget";

Så er det allerede et array.
Avatar billede Slettet bruger
03. januar 2004 - 17:09 #7
Man kunne for eksempel gøre noget i denne stil:

while($row=mysql_fetch_assoc($res)){
$liste[$row['ID']]=$row;
}

Derefter kan du skrive $liste[1] for at få fat i data for linien med id=1, for eksempel $liste[1]['titel'] hvis der er et titel-felt i din database.
Avatar billede sjh Nybegynder
03. januar 2004 - 17:35 #8
Ja.. har fået lavet det :-) smid lige et svar og ikke en kommentar -> sandbox

<?php
  $query = mysql_query("SELECT DISTINCT ID FROM forum_comment ORDER BY AutoID DESC LIMIT 5;");
  $i=0;
  while($row = mysql_fetch_array($query)) {
    $arrID[$i++] = $row["ID"];
  }
  if (count($arrID))
  for ($i=0;$i<count($arrID);$i++) {
    $query = mysql_query("SELECT ID, Title, Category FROM forum_question WHERE ID = '".$arrID[$i]."';");
    $row = mysql_fetch_array($query);
    echo '<tr>';
    echo '<td><a href="?id='.$row["ID"].'" title="'.$row["Category"].'">'.$row["Title"].'</a></td>';
    echo '</tr>';
  }
?>
Avatar billede Slettet bruger
03. januar 2004 - 17:38 #9
Den kode, du har der virker da ikke. Den vil skrive oplysningerne for den sidste match i databasen hvert sted.
Avatar billede Slettet bruger
03. januar 2004 - 17:39 #10
Undskyld. Jeg havde lige læst forkert.
Avatar billede Slettet bruger
03. januar 2004 - 17:40 #11
Og her var et svar
Avatar billede sjh Nybegynder
03. januar 2004 - 17:42 #12
jo den virker som den skal.. skal bare ikke have if (count($arrID)) med ;)
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