Denkproblem

Mirko D

Erfahrenes Mitglied
Hallo! Ich hab ein kleines Denkproblem!

Ich habe gerade ein Registrierungsformular geschrieben welches auch funktioniert. Das ist ja alles kein Problem! Jetzt soll ich so ne komische Funktion reinschreiben!

Also zu meinem Problem. Die Funktion soll wie folgt funktionieren.
Die ersten 4 Registrierungen soll Bearbeiter 1 bekommen,
dann soll die erst darauffolgende Registrierung an Bearbeiter 2 gesendet werden.
Die darauf folgenden 4 Registrierungen sollen dann an Bearbeiter 3 gesendet werden. Dann soll die nächste wieder an Bearbeiter 2 gesendet werden.

Ab da an fängt es wieder von vorne an. :(

Als Datenbank benutze ich eine Textdatei, mit den Bearbeiter Informationen. Diese schreibe ich auch nach jeder Registrierung wieder rein. Aber es will zum sterben nicht klappen, dass er nach dem 3 Bearbeiter wieder auf Bearbeiter 2 springt und dann wieder auf 1 und und und.

Ein Teufelskreis. Ich habe schon alles mögliche Ausprobiert, aber es will nicht funken.

Naja vielleicht kann mir ja einer nen kleinen Denkanstoss geben.

Gruß Mirko
 
Ich würde in der Textdatei für jeden bearbeiter eine Zeile nehmen und mit nem Semikolon getrennt die Anzahl wieviele Regs er hat.
Bei jeder Reg wird für den Entsprechenden Bearbeiter, beispielsweise a die Zahl erhöht. Hierbei wird geschaut ob der Bearbeiter die 4 erreicht hat. Wenn ja gehts beim nächsten Weiter. Wenn alle 4 haben, dann alles flushen und es geht von vorne los
 
Kleine Verständnisfrage.... kriegt B2 also immer nur einen Job zugewiesen?

Sähe das dann so aus:
1-1-1-1-2-3-3-3-3-2-1-1-1-1-2-3-3-3-3...
 
@lambda genauso sieht es aus.
@Ben: Deine Idee sit schon gut, aber du vergisst das nicht alle 3 Vier jobs bekommen sondern das es variiert wie es Lambda schon geschildert hat.

Gruß mirko
 
Sagen wir mal du merkst dir irgendwie(txt-file, db, egal....) einen Counter $counter und den Kontrollschalter $inc_switch 1/-1.

PHP:
<?
	/*Initial*/
	$counter;
	$inc_switch=1;

	
	if($counter<4) {
		if(counter==0) { //Counter bei 0, hochzählen
			$inc_switch*=$inc_switch;
		}
		--> B1
	}
	
	if($counter==5) {
		--> B2;				
	}
	
	if($counter>5) {
		if($counter==9) { //Counter bei 9, runterzählen
			$inc_switch*=$inc_switch;
		}
		-->B3
	}
	$counter += inc_switch;
?>

So mein erster Denkerguss... :rolleyes:
 
hmm...
wie wäre es, wenn Du Dir zwei Zählvariablen (a,b) einrichtest.

Die Erste (a) geht bis 4 und springt bei erneuter Erhöhung auf 0.
Wenn a=0 dann gibst Du den Job dem 2. Bearbeiter.

Gleichzeitig zählt die zweite Variable (b) um genau eins hoch, wenn die Erste (a) auf 0 gesetzt wird.

Somit steht nach dem ersten Sprung auf Bearbeiter 2 (von Bearbeiter 1) a=0 und b=1
Nach dem zweiten Sprung auf Bearbeiter 2 (von Bearbeiter 3) ist a=0 und b=1

jetz geht's wieder zurück zu Bearbeiter 1.
Beim nächsten Sprung auf Bearbeiter 2 wird b wieder erhöht --> b=2

Es stellt sich die Regelmäßigkeit ein, dass bei ungeradem b auf Bearbeiter 1 gesprungen wird und bei geradem b auf Bearbeiter 3.

Das kannst Du dann ja leicht abfragen...

Puh... ich hoffe, ich konnte meine Gedanken einigermaßen verständlich wiedergeben :-)

MfG
Hans
 
Ja super! Ich werds mal einbauen wenn ich zu Hause bin. Aber mit weiteren "Denkergüssen" immer her :-) Habe auch schon eine Idee für eine Funktion. Und zwar kann ich ja lediglich immer nur vergleichen wie viele Regs schon vorgenommen worden sind. Und je nach Anzahl dem jeweiligen Bearbeiter zukommen lassen. Muss mal schauen ob das irgendwie funken wird.

Gruß Mirko
 
@lambda

Das wird so nicht ganz funktionieren, da Du so ja beim Zurückzählen den Bearbeiter nochmal "durchläufst".

bei Dir würde das ganze in etwa dann so aussehen:

1111-2-3333333-2-1111111-2-3333333-2-1111111-...

Aber so müsste es doch eigentlich gehen, oder
PHP:
<? 
    /*Initial*/ 
    $counter; 
    $inc_switch=1; 

     
    if($counter<4) { 
        --> B1 
    } 
     
    if($counter==5) { 
        --> B2;                 
    } 
     
     if($counter<10) {
        -->B3 
    } 

      if($counter==10) { //Counter bei 10 wieder von vorne beginnen lassen
      $counter = 0;
        --> B2
     }
    $counter +=$counter; 
?>

MfG
Hans
 
Zuletzt bearbeitet:
Ja so in der Art müsste das funktionieren. Werde das nacher mal alles ausprobieren und die lösung dann definitiv Posten #.

Gruß Mirko

Und danke für die coolen Ansätze und Hilfen.
 
Zurück