webForumDet fria alternativet

mysql-fråga

5 svar · 443 visningar · startad av überfuzz

überfuzzMedlem sedan apr. 2006409 inlägg
#1

När jag tar ut information ur en sql-tabell brukar jag göra såhär. Ett exempel:

$sql = mysql_query("SELECT * FROM tabell") or die(mysql_error(Det gick inte att hitta tabellen!));
while($resultat = mysql_fetch_array($sql)) {
    echo $result['kolumn'];
}

Tidigare har jag aldrig gjort några stora tabeller, med mycket information alltså, men nu sitter jag med en stor tabell. När jag hämtat info tidigare har jag alltid tagit hela tabellen och sedan valt vad jag vill ha när informationen ska skrivas ut. Finns det något bättre sätt, alltså snabbare sätt.

drewMedlem sedan mars 2007845 inlägg
#2

Om det är så mycket snabbare vet jag inte. Tabellerna måste iaf sökas genom. Men om du bara ska hämta några fält kan du specifiera vilka du vill ha.
Ex:

$sql = mysql_query("SELECT user_id, user_name, user_adres FROM tabell") or die(mysql_error(Det gick inte att hitta tabellen!));
while($resultat = mysql_fetch_array($sql))
{
    echo $result['user_id'] . $result['user_name'] . $result['user_adres'] . '<br />';
}

/D

überfuzzMedlem sedan apr. 2006409 inlägg
#3

Okej.

Så även om jag specifierar vad jag vill åt, vilka kolumner, i själva frågan måste jag även specifiera det i ekot sen?

drewMedlem sedan mars 2007845 inlägg
#4

Japp.

/D

aasahMedlem sedan mars 20034 471 inlägg
#5

überfuzz skrev:

Tidigare har jag aldrig gjort några stora tabeller, med mycket information alltså, men nu sitter jag med en stor tabell. När jag hämtat info tidigare har jag alltid tagit hela tabellen och sedan valt vad jag vill ha när informationen ska skrivas ut. Finns det något bättre sätt, alltså snabbare sätt.

Varför hämta ut mer information än du behöver? Trots allt måste ju informationen skickas från tabellen till resultatmängden så...

Dessutom kan du få ut alla hämtade kolumner så här: (Återanvänder drews exempel.)

$sql = mysql_query("SELECT user_id, user_name, user_adres FROM tabell") or die(mysql_error(Det gick inte att hitta tabellen!)); 
while($resultat = mysql_fetch_array($sql))  { 
   foreach ($result as $val)
       echo $val;
   echo '<br />'; 
}
CompusaMedlem sedan jan. 20023 327 inlägg
#6

I regel går det snabbare med explicit selektion och man bör ha för vana att använda sig av detta.

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)