Avatar billede christianandersen Nybegynder
26. februar 2009 - 15:33 Der er 5 kommentarer og
1 løsning

resultat fra database?

Hej,
jeg vil gerne høre fra nogle af de kloge hoveder her inde.

Gør det nogen forskal at bruge 1 istedet for 2?

1:
$foresp = mysql_query("SELECT brugernavn FROM users WHERE id='$id'") or die(mysql_error());
    $resultat = mysql_fetch_array($foresp);
if ($resultat['brugernavn'] == "la") {
echo"la";

2:
$foresp = mysql_query("SELECT brugernavn FROM users WHERE id='$id'") or die(mysql_error());
if ($mysql_result($foresp, 0, brugernavn) == "la") {
echo"la";
}
Avatar billede jakobdo Ekspert
26. februar 2009 - 16:13 #1
Uden at være mysql ekspert, vil jeg gætte på nummer 2 er hurtigst.
Dog bør du nok tilføje LIMIT 1 i din SQL, ala:

SELECT brugernavn FROM users WHERE id='$id' LIMIT 1
Avatar billede jakobdo Ekspert
26. februar 2009 - 16:20 #2
Du kunne lave en test ala dette på din server/webhotel:

<?php
//http://www.eksperten.dk/spm/865602
mysql_connect();
mysql_select_db('test');

$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];

for($i = 0; $i < 10000; $i++){
    $res = mysql_query("SELECT produkt FROM du_vaelger WHERE id = 2 LIMIT 1");
    $val = mysql_result($res,0);
}

$mtime = explode(' ', microtime());
$totaltime = $mtime[0] + $mtime[1] - $starttime;
printf('<br />Mysql_result loaded in %.3f seconds.', $totaltime);

$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];

for($i = 0; $i < 10000; $i++){
    $res = mysql_query("SELECT produkt FROM du_vaelger WHERE id = 2 LIMIT 1");
    $row = mysql_fetch_assoc($res);
    $val = $row['produkt'];
}

$mtime = explode(' ', microtime());
$totaltime = $mtime[0] + $mtime[1] - $starttime;
printf('<br />Mysql_fetch_assoc loaded in %.3f seconds.', $totaltime);

$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];

for($i = 0; $i < 10000; $i++){
    $res = mysql_query("SELECT produkt FROM du_vaelger WHERE id = 2 LIMIT 1");
    $row = mysql_fetch_array($res);
    $val = $row[0];
}

$mtime = explode(' ', microtime());
$totaltime = $mtime[0] + $mtime[1] - $starttime;
printf('<br />Mysql_fetch_arra loaded in %.3f seconds.', $totaltime);

$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];

for($i = 0; $i < 10000; $i++){
    $res = mysql_query("SELECT produkt FROM du_vaelger WHERE id = 2 LIMIT 1");
    $row = mysql_fetch_object($res);
    $val = $row->produkt;
}

$mtime = explode(' ', microtime());
$totaltime = $mtime[0] + $mtime[1] - $starttime;
printf('<br />Mysql_fetch_object loaded in %.3f seconds.', $totaltime);

?>
Avatar billede christianandersen Nybegynder
26. februar 2009 - 16:30 #3
Jo tak for det smid lige et svar i
Avatar billede jakobdo Ekspert
26. februar 2009 - 16:47 #4
Svar!
Avatar billede jakobdo Ekspert
26. februar 2009 - 17:00 #5
Takker for point.
Avatar billede christianandersen Nybegynder
26. februar 2009 - 17:25 #6
Ja det var så lidt
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