WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Visa resultat direkt i WHILE-loop i PHP ? (https://www.wn.se/forum/showthread.php?t=28858)

eg0master 2008-04-24 06:15

Citat:

Originally posted by Magnus_A@Apr 23 2008, 21:39
Nej, det kan jag inte, men tro det eller ej, det går fortare när det är väldigt många rader.
Det betvivlar jag starkt. Däremot kan du se en skillnad om du först kör den ena varianten och sedan den andra eftersom det är samma fråga som körs och databasen då vid andra körningen kommer ha en del interna strukturer cachade. Därför kommer den andra körningen bli klar snabbare. men det beror inte på din kod utan att databasen inte behöver göra riktigt samma arbete båda gångerna.

Magnus_A 2008-04-24 08:51

Jag beklagar, men jag kan bara redovisa de resultat jag får fram. Och jag känner till mysql:s frågechache och har kompenserat för den genom att ställa samma fråga flera gånger i samma uppkoppling.
Gör gärna försöket själv och posta här om du får andra resultat.

Jonathan P 2008-04-24 09:45

Citat:

Originally posted by Magnus_A@Apr 24 2008, 08:51
Jag beklagar, men jag kan bara redovisa de resultat jag får fram. Och jag känner till mysql:s frågechache och har kompenserat för den genom att ställa samma fråga flera gånger i samma uppkoppling.
Gör gärna försöket själv och posta här om du får andra resultat.

Jag kan med 100% säkerhet säga att det går snabbare att loopa igenom resultatet en gång istället för två....

SimonP 2008-04-24 10:26

Ja, det är rätt logiskt, en loop är bättre. Jag testade även det, det varierade mellan 5-10% snabbare.

EmilIsberg 2008-04-24 15:41

Citat:

Originally posted by Bergman@Apr 23 2008, 12:03
Någon som har nåt bra tips på hur man visar resultat direkt i en WHILE-loop i PHP? Jag har problem med att sidan en sida tar väldigt lång tid att ladda pga av en loop i scriptet. i WHILE-loopen så är det lite ECHO:s så det är inget komplicerat. Däremot så vill jag visa varje ECHO rad för rad lixom ...
Om du använder dig av en UNIX-server kan du använda följande rad i .htaccess:
Kod:

php_value output_buffering 0
Då kan du använda något liknande följande PHP-kod för att se utmatningen innan hela skriptet har laddats klart (eller mer exakt innan utmatningsbufferten är full):
Kod:

for($i=0;$i<20;$i++)
{
 sleep(1);
 echo "<span>$i</span><br>\n";
 flush();
}

Du kan läsa mer om output_buffering på:
http://se2.php.net/manual/en/ini.php#ini.list
http://se2.php.net/manual/en/outcont...tput-buffering


Alla tider är GMT +2. Klockan är nu 18:21.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson