webForumDet fria alternativet

mysql-fråga

PHP

5 svar · 445 visningar · startad av überfuzz

Medlem sedan apr. 2006409 inlägg
Frågan#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.

Medlem 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

Medlem 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?

Medlem sedan mars 2007845 inlägg
#4

Japp.

/D

Medlem 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 />'; 
}
Medlem 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.

254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)