Avatar billede floetti Nybegynder
05. oktober 2007 - 12:33 Der er 10 kommentarer og
1 løsning

Del mysql_query op i stumper

Hej med jer,

Jeg ville lige høre om det er muligt at dele en mysql_query(udtræk) op i mindre dele, så jeg foreksempel kan tømme cache og andet lort ud imellem hvert loop?

Det er fordi jeg har en file_get_contents(""); fra en anden server, og for så at minske belastningen på filen tænkte jeg at dele det op... giver det mening eller er det bare mig?

Der er tale om omk. 200 rækker i db'en.

//floetti
Avatar billede zurekk Nybegynder
05. oktober 2007 - 12:48 #1
Jeg er personligt ikke helt med?
Avatar billede montago Praktikant
05. oktober 2007 - 12:50 #2
... LIMIT 1, 20
... LIMIT 2, 20
...
Avatar billede onkel_satan Nybegynder
05. oktober 2007 - 12:57 #3
Du snakker om at du vil minske belastningen på filen. Kan du præcisere lidt nærmere hvad problemet er ?
Avatar billede floetti Nybegynder
05. oktober 2007 - 17:38 #4
Ja, jeg vil gerne mindske belastningen på den den hentede fil. Filen der hentes sender et sms, og den kan sende 40 i sek, så tænkte jeg at køre f.eks. 40 file_get_contents(""); forespørgsler ad gangen med 2-3 sek. mellemrum.

Kan det lade sig gøre?
Avatar billede montago Praktikant
06. oktober 2007 - 00:12 #5
du kan lave en Sleep(2000) inde i en While

fx

//Hent fil
file = get(file.txt)
cnt = 0;
while(! file.atEnd() ){
  txt = file.readline();
  sendSMS( txt )
  cnt++;
  if(cnt%40==0)
    sleep(2000);
}


nb. jeg er IKKE php haj :D
Avatar billede montago Praktikant
06. oktober 2007 - 00:12 #6
ellers skal du lave en lille sleep, på fx 50 ms sådan at du ikke laver for mange sms'er af gangen... så flyder det hele også mere
Avatar billede olebole Juniormester
06. oktober 2007 - 00:55 #7
<ole>

sleep(2000) er godtnok noget af en lur!  ;o)

/mvh
</bole>
Avatar billede montago Praktikant
06. oktober 2007 - 08:47 #8
ole: han spurgte jo selv efter en 2 sekunders delay...

men det smarteste er nok at lave en sleep-flush mekanisme, så man kan se der sker noget...

et script har i ASP en maks timeout på 999 sekunder, jeg går ud fra det er det samme for PHP ?? --


file = get(file.txt)

while(! file.atEnd() ){
  txt = file.readline();
  sendSMS( txt )
  echo("sendt sms til :". txt );
  flush();
  sleep(100);
}
Avatar billede floetti Nybegynder
07. oktober 2007 - 12:16 #9
Tak, jeg laver en test og svarer igen ;)
Avatar billede floetti Nybegynder
20. oktober 2007 - 13:19 #10
Undskyld det sene svar, men jeg fandt ud af en logisk løsning. Jeg satte bara alle numrene i en semicolon variabel sendte den afsted på en gang. Skal der deles points eller tager jeg selv?
Avatar billede gammelhat Nybegynder
20. oktober 2007 - 13:22 #11
ifølge php.net, vil sleep(2000) sætte scriptet til at sove i en halv times tid :)
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

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