13. december 2005 - 21:12Der er
8 kommentarer og 1 løsning
Hjælp til hastigheds optimering
Jeg har fået bakset nedenstående kode sammen der sådan set virker fint nok, med det er meget langsom - den tager mange minutter om at udføre nedenstående. Så jeg har brug for noget hjælp til at gøre koden "hurtigere".
$sqlPerson indeholder mellem 1 og 25 poster. $sqlOpgave indeholder op til 2200 poster
$sqlPerson = "select bruger_id from rundringning_udvalg_users where rund_id='".$_GET['rundid']."'"; $queryPerson = mysql_query($sqlPerson) or die(mysql_error()); while ($row = mysql_fetch_assoc($queryPerson)) { $person[] = $row["bruger_id"]; }
$opgave = array();
$sqlOpgave = "select skole_id FROM rundringer_udvalg where tildelt='0' AND rundringning='".$_GET['rundid']."'"; $queryOpgave = mysql_query($sqlOpgave) or die(mysql_error()); while ($row = mysql_fetch_assoc($queryOpgave)) { $opgave[] = $row["skole_id"]; }
$personNo = 0; for ($opgaveNo=0; $opgaveNo<count($opgave); $opgaveNo++) {
$insertSQL = "INSERT INTO rundringer_tildelt (rund_id, skole_id, bruger_id) VALUES ('".$_GET['rundid']."', '$opgave[$opgaveNo]', '$person[$personNo]')" or die(mysql_error()); mysql_query($insertSQL); Mysql_query ("UPDATE rundringer_udvalg set tildelt ='1' WHERE rundringning='".$_GET['rundid']."' AND skole_id='$opgave[$opgaveNo]' ") or die(mysql_error());
$personNo++; if ($personNo == count($person)) $personNo = 0; }
rundringning_udvalg_users: Struktur: `rund_id` int(11) NOT NULL default '0', `bruger_id` int(11) NOT NULL default '0'
Indeholder oplysninger om brugere der skal anvendes til en opgave
rundringer_udvalg Stuktur: `tildelt` int(5) NOT NULL default '0', `rundringning` int(5) NOT NULL default '0', `skole_id` int(5) NOT NULL default '0' ) TYPE=MyISAM;
Indeholder oplysninger om hvilke skoler der skal bruges til en given opgave.
rundringer_tildelt Struktur: id` int(11) NOT NULL auto_increment, `rund_id` int(5) NOT NULL default '0', `skole_id` int(6) NOT NULL default '0', `bruger_id` int(4) NOT NULL default '0', `status` int(3) NOT NULL default '0', `interesse` int(3) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=6466 ;
Indeholder oplysninger om hvilke brugere der er tildelt hvilke opgaver(skoler)
Så det koden gør er at finde ud af hvor mange brugere der er til et projekt, og så fordel disse brugere til de opgaver(skoler) der er i projektet således at de får tildelt lige mange opgaver.
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.