"Gruppenwechsel" kenne ich noch aus meinen COBOL-Zeiten. "Gruppenwechsel" macht heutzztage ein RDBMS gerne selbst.
Vielleicht liegt hier eine Möglichkeit, die ich nicht kenne.
Bevor Du sowas machst, solltest Du mal _ganz_genau_ beschreiben, was Sache ist.
Gut, hier der PHP- Code, ich hoffe, die Kommentarzeilen machen ihn verständlich:
$arr_eventbuchungen = array();
$gruppen_id = 0;
$anz_mitglieder = 0;
$gebu_mitglieder = 0;
while ( $row_evt = mysql_fetch_array( $res_evt ))
{
if ( ( $row_evt['evb4_anz_mitglieder'] > 0 && $freie_plaetze >= $row_evt['evb4_anz_mitglieder'] )
||( $row_evt['evb4_anz_mitglieder'] == 0 && $freie_plaetze > 0 ))
{
// 2007-03-22
if ( $gruppen_id != $row_evt['bzg1_gruppen_id'] )
{
// WECHSEL DER BESUCHERGRUPPE, AUCH VON GRUPPE AUF ERSTEN EINZELBESUCHER
if ( $anz_mitglieder > $gebu_mitglieder )
{
// VORHERIGE GRUPPE NICHT KOMPLETT, WIEDER ZURUECKHOLEN
while ( $gebu_mitglieder > 0 )
{
$letzter = array_pop ( $arr_eventbuchungen );
$gebu_mitglieder--;
$freie_plaetze++;
}
}
// MERKER FUER NEUE GRUPPE SETZEN
$gruppen_id = $row_evt['bzg1_gruppen_id'];
$anz_mitglieder = $row_evt['evb4_anz_mitglieder'];
$gebu_mitglieder = 0;
}
// 1. GRUPPE, AUCH EINERGRUPPE / 2. EINZELPERSON
$arr_eventbuchungen[] = array(
'wunsch_event_id' => $row_evt['evt2_id']
,'gebuchte_event_id' => $arr_evtBuchen[$i]
,'adress_id' => $row_evt['evb1_adress_id']
,'gruppen_id' => $row_evt['bzg1_gruppen_id']
,'von_slot_nr' => $row_evt['evt1_von_slot_nr']
,'bis_slot_nr' => $row_evt['evt1_bis_slot_nr']
);
$freie_plaetze--;
if ( $gruppen_id ) $gebu_mitglieder++;
if ( $freie_plaetze == 0 ) break;
}
} // while
if ( $gruppe_id && $anz_mitglieder > $gebu_mitglieder )
{
// LETZTE GRUPPE NICHT KOMPLETT, WIEDER ZURUECKHOLEN
while ( $gebu_mitglieder > 0 )
{
$letzter = array_pop ( $arr_eventbuchungen );
$gebu_mitglieder--;
$freie_plaetze++;
}
}
Kalle