Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
mySQL kører som en separat process, så det er en god ide at begrænse den datamængde der skal overføres. Du bruger kun de første 5 rækker, så lad være med at hente flere end det. Det gøres ved at tilføje en LIMIT clause LIMIT 0, 5 forenden af din query.
$top = $top = $top ... er pjat. hvorfor give $top den værdi der ligger i $top? Fjern det første '$top = '
din funktion i WHILE wil muligvis (jeg er ikke sikker) blive udført for hver eneste række. Hvis der er mange kan det være hurtigere at udføre den een gang i en anden query og så bruge resuktatet:
$skerings_tid = mysql_result( mysql_query( " select DATE_SUB(Now(), INTERVAL 100 DAY) ", 0, 0 ); $top=""; $res56 = mysql_query(" SELECT navn, uid, date_format(Date, '%d.%m.%Y, %H:%i') as Date, hits+0 as hits FROM drinks WHERE Date > $skerings_tid AND verified = 1 ORDER BY hits_print DESC LIMIT 0,5 ");
den første (thorus 19/12-2003 14:42:52) er det ikke umagen værd at gøre noget ved. det udføres kun een gang. den anden (thorus 19/12-2003 14:43:36) har en løkke der kører gang 10 gange. det er igen en småting.
Men jeg bemærker du har det med at sige: $langstreng = $langstreng ."noget mere streg."; og efterhåden som $langstreng bliver længere og længere kan det meget nemt gå hen at blive endog meget dyrt. Hvergang du udfører sådan en sætning skal php: 1) Allokere et dataareal der er stort nok til at indeholde den nye længere streng 2) kopiere den gamle værdi i $langstreng derover. 3) kopiere den nye tilføjelse derover 4) sætte variable $langstrent til at pege på det nye dataareal. 5) frigive og måske garbagecollecte det dataareal $langstreng pegede på før.
kopiering koster i proportion til hvor lang den kopierede streng er.
lager-allokering/deallokering koster i omvendt proportion med hvormeget lager du har. Hvis du har masser ad RAM er det ikke vældig dyrt, hvis du kun har lidt kan det koste kassen.
Så det er en risikabel kommando at bruge.
et alternativ er at lave et array
$topbruger = array(); og så komme tilføjelserne ind i hver sin celle istedet for hele tiden at sætte dem sammen: dvs $topbruger = $topbruger . "... // kopier og alloker al plads bliver til $topbruger[] = "... // kun tilføjelsen kopieres og får allokeret plads
og så, til allersidst når hele strengen skal skrives til output ændrer du fra: echo $topbruger; // skriv hele strengen til: for ( $i=0; i<count($topbruger); $i++ ) { echo $topbruger[$i]; // udskriv alt i arrayet }
jo flere gang du sætter strenge sammen jo mere vil det spare af servertid.
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.