Kalle_B: Gruppenwechsel

Beitrag lesen

"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