Kom ihåg mig?
Home Menu

Menu


Visa resultat direkt i WHILE-loop i PHP ?

 
Ämnesverktyg Visningsalternativ
Oläst 2008-04-23, 12:03 #1
Bergman Bergman är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2007
Inlägg: 35
Bergman Bergman är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2007
Inlägg: 35
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 ... hoppas ni förstår vad jag menar och har nåt bra tips hur jag ska lösa det.

while($row = mysql_fetch_array($quer)) {
echo "Text".$row['Data'];
}

Mvh Bergman
Bergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-23, 12:06 #2
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Kort svar: http://se2.php.net/flush

Fast du är nog ute på hal is. Dito loopar äter CPU.
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-23, 12:09 #3
Bergman Bergman är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2007
Inlägg: 35
Bergman Bergman är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2007
Inlägg: 35
Tack för snabbt svar!

Har du något bra tips på hur man kan visa att något händer bortsett från flush?

Det är ett admin-script som inte användarna ser men risken är att administratörerna kör en "Reload" mitt i för att dom tror att det hängt sig.
Bergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-23, 12:29 #4
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Finns flera sätt..

A: http://se2.php.net/ignore_user_abort

B: Starta ett bakgrundsjobb via CURL

etc..

Good luck!
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-23, 12:46 #5
Bergman Bergman är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2007
Inlägg: 35
Bergman Bergman är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2007
Inlägg: 35
En annan variant kanske är att man minskar antalet steg i loopen och sedan laddar om sidan och fortsätter. Kanske är det smidigaste när jag tänker efter
Bergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-23, 15:41 #6
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Om du behöver skriva ut så mycket data så att det tar för lång tid så dela upp det på flera sidor med 25 eller 50 poster på varje - sedan får användaren bläddra. Det är det vanliga sättet att lösa det på.

Annars om det är nödvändigt av någon anledning att alla poster kommer på "ett blad" så gör en download-knapp och låt användaren ladda ner listan (då har man förståelse för att det tar tid).

Du kan ju också förstås göra något med ajax, t.ex. "Hämtar rad 1…", "Hämtar rad 2…", osv. då är det nog ingen som avbryter om det nu inte är så att de inte alls vill/orkar se allt innehåll.

Om innehållet i databasen är någorlunda statiskt så kan du ju spara det i en textfil som du inkluderar (och uppdaterar då och då på något lämpligt sätt, t.ex CRON).

Vad är det för data som är så omfattande att den inte vill ladda ner snabbare? Eller är det så stora mängder?
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-23, 15:52 #7
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
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 ... hoppas ni förstår vad jag menar och har nåt bra tips hur jag ska lösa det.

while($row = mysql_fetch_array($quer)) {
echo "Text".$row['Data'];
}

Mvh Bergman
Dela upp hämtningen

Kod:
$result=array();

while($row = mysql_fetch_array($quer)) {
$result[]="Text".$row['Data'];
}


foreach($result as $value){

echo $value;
}
Eller skapa en textsträng direkt:
$result='';
Kod:
while($row = mysql_fetch_array($quer)) {
$result .= "Text {$row['Data']} <br>";
}
echo $result;
Bäst är nog ändå göra som martine föreslår, dela upp resultatet i bitar och bläddra dig framåt och bakåt.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-23, 18:23 #8
Bergman Bergman är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2007
Inlägg: 35
Bergman Bergman är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2007
Inlägg: 35
Det blir nog att dela upp datat i mindre bitar samt försöka optimera MySQL-tabellerna för att snabba upp hanteringen. Det är alltså en massa prisinformation till PrisCentralen.com som uppdateras ganska ofta.

Tack för all hjälp iallafall!
Bergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-23, 20:57 #9
Jonathan P Jonathan P är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 141
Jonathan P Jonathan P är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 141
Citat:
Originally posted by Magnus_A@Apr 23 2008, 15:52
Dela upp hämtningen
Kan du förklara för mig hur...
Kod:
$result=array();

while($row = mysql_fetch_array($quer)) {
$result[]="Text".$row['Data'];
}


foreach($result as $value){

echo $value;
}
... skulle kunna gå snabbare än...
Kod:
while($row = mysql_fetch_array($quer)) {
 echo "Text".$row['Data'];
}
?

Jonathan P är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-23, 21:39 #10
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Nej, det kan jag inte, men tro det eller ej, det går fortare när det är väldigt många rader.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 19:41.

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