Avatar billede encorez Nybegynder
03. maj 2009 - 12:17 Der er 10 kommentarer og
1 løsning

Udtræk fra en mysql-query

Hej

Hvis jeg har lavet et udtræk fra en database og fået returneret 5 rækker og jeg efterfølgende ønsker at udtrække en række af gangen, men hvor rækken jeg ønsker måske er midt i udtrækket.

Udtræk: $query = mysql_query("select id, farve from Table");
id farve
1  rød
2  grøn
3  blå
4  grå

Hvordan jeg så efterfølgende udtrække f.eks. først farven for id 3, derefter for id 2, så 4 og til sidst for 1.

Håber I forstår spørgsmålet.

Alternativet er selvfølgelig at jeg laver en ny query for hver eneste id jeg ønsker farven for
Avatar billede showsource Seniormester
03. maj 2009 - 12:30 #1
echo mysql_result($query,2,"farve");
echo mysql_result($query,1,"farve");
echo mysql_result($query,3,"farve");
echo mysql_result($query,0,"farve");

Tallene er IKKE for id, men "rownummer"
Avatar billede encorez Nybegynder
03. maj 2009 - 13:02 #2
Tak for svaret. Men jeg kan desværre ikke bruge den hvis det er rownummer.
Avatar billede showsource Seniormester
03. maj 2009 - 13:13 #3
Det forstår jeg ikke lige :O)
Du vil gerne hente fra en query, hvor du selv bestemmer hvilket row du vil vise ?

Eller du mener måske sortering ved udtræk ?
SELECT id, farve FROM tabel ORDER BY farve ASC

Alternativt kan du også ha' en kolonne kun til brug for sortering
Avatar billede encorez Nybegynder
03. maj 2009 - 13:21 #4
Ikke ved udtrækket nej. Jeg vil selv bestemme hvilken row jeg har brug for at vise lige her i min kode. Og et par linier længere nede har jeg brug for at få vist en anden bestemt row. Men det kan ikke sorteres i queryen

Ja, jeg kunne også lave en sorteringskolonne i tabellen, hvis ikke man kan udføre det jeg spørger efter.
Avatar billede showsource Seniormester
03. maj 2009 - 13:33 #5
Hvis du ved præcis hvor i udtræk farven er, kan du godt bruge mysql_result()
Avatar billede encorez Nybegynder
03. maj 2009 - 13:36 #6
Ikke hvor, blot at "nu vil jeg have rækken med id=5" og senere i koden hvor id=3
Avatar billede showsource Seniormester
03. maj 2009 - 13:55 #7
så kan du putte resultatet i et array,

$colors = array();
while($rows=mysql_fetch_array($query)) {
$colors[$rows["id"]] = $rows["farve"];
}

echo $colors[3];
Avatar billede encorez Nybegynder
03. maj 2009 - 21:22 #8
det kunne godt være løsningen.

Jeg skal dog have 3 informationer for hvert id. Så hvordan vil det se ud i while sætningen?
Avatar billede showsource Seniormester
04. maj 2009 - 07:37 #9
3 hvorfra? DB? 4 kolonner ialt altså?

while($rows=mysql_fetch_array($query)) {
$colors[$rows["id"]] = array($rows["col_1"],$rows["col_2"],$rows["col_3"]);
}

echo colors[3][0] // 0,1,2 er for hver værdi
Avatar billede encorez Nybegynder
04. maj 2009 - 09:22 #10
Det må nok blive løsningen.

Jeg ved det er småting men hvad vil du mene er bedst performance mæssigt
1. at trække alt man skal bruge ud af DB, sortere i array og derefter bruge det i sin kode
2. at ikke sortere i array først, men lave ny query hver gang men skal bruge en information?

Vi snakker 15 gange.

Læg et svar for hjælpen
Avatar billede showsource Seniormester
04. maj 2009 - 14:11 #11
Nemmeste er jo at lave et array. ( 1 ) ( Med 1 DB kald )
Men måske en anden opbygning af DB ?

Altså performance afhænger af koden og DB opbygning.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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