26. november 2005 - 13:24Der er
25 kommentarer og 1 løsning
tildele opgaver
Jeg ved at lave et system der kan tildele opgaver til personer, og har i den forbindelse et problem jeg ikke lige kan finde ud af at løse.
jeg kan godt finde ud af at tildele 6 opgaver til tre personer ved en simpel sividering af antal opgaver med antal personer.
Men hvordan skal jeg gøre det når antallet af opgaver ikke går op med antallet af person, så hvis der f.x. er 7 opgaver til 3 personer så skal 2 personer have 2 opgaver og en person 3 opgaver?
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Slettet bruger
26. november 2005 - 13:41#1
Du skal jo have en eller anden regel for hvorledes du tildeler opgaver. Hvis det er ligegyldigt hvor, altså det er bare hænder, så kunne du jo tildele efter den der har fået tildelt færrest får den nye, og hvor der er flere der er fået tildelt lige lidt så tager du bare den første.
$sqlPerson = "SELECT person FROM personTabel"; $queryPerson = mysql_query($sqlPerson) or die(mysql_error()); while ($row = mysql_fetch_assoc($queryPerson)) { $person[] = $row["person"]; }
$opgave = array();
$sqlOpgave = "SELECT opgave FROM opgaveTabel"; $queryOpgave = mysql_query($sqlOpgave) or die(mysql_error()); while ($row = mysql_fetch_assoc($queryOpgave)) { $opgave[] = $row["opgave"]; }
Nielle > Det nræmer sig men der er stadig et par problemer
Der vises flere opgaver end der er - koden viser 2168 "opgaver" -der er kun 2153 Person nummer vises ikke
Min kode som den se ud nu:
$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"]; }
$person = mysql_fetch_assoc(mysql_query("SELECT person FROM table"));
- får du godt nok et array, men det er altså et array over samtlige felter i første række. Brugen af while-løkken er for at komme igennem samtlige rækker.
Dine 2 SQL-udtryk hiver vel det ud som de skal. Hvis ikke, så har du skrevet noget galt i dem. Jeg har desværre ikke mange chancer for at gætte hvad det kan være. :^|
En fejlmulighed er hvis der er flere personer end opgaver. Er der det?
$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"]; }
Beklager - jeg havde se mig blind på at opgave nummeret skulle være fortløbende, men det afspejler jo opgavens nummer og det er ikke nødvendig fortløbende.
Mange, mange tak for hælpen. Læg et svar og du skal få point.
Nåeee, der kan vel være huller i den nummerorden. Min egen mistanke gok dog på at der måske var nogen af opgaverne som strakte sig over mere end en line.
$personNo++; if ($personNo == count($person)) $personNo = 0; }
... og et svar :^)
Synes godt om
Ny brugerNybegynder
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.