Hallo!
Habe ein merkwürdiges Problem.
In einer Funktion habe ich zwei While-Schleifen und dieses werden beide immer nur einmal durchlaufen.
Muss ja ein voll blöder Syntax-Fehler sein. Doch ich sehe ihn nicht. #angry#
Wärt Ihr so nett und würdet einmal schauen!?
$tmpl = $this->cObj->fileResource("typo3conf/ext/coursemanager/tmpl_coursemanager_main.html" ) ;
$subpart = $this->cObj->getSubpart($tmpl, "###CALC_STATUS###" ) ;
$subsub = $this->cObj->getSubpart($subpart, "###CALC_MESSAGE###" ) ;
// Alle Felder part_act in Tabelle courses auf Null setzen
$updateArray = array('part_act' => 0, 'part_free' => 14 ) ;
$res = $GLOBALS['TYPO3_DB']->exec_UPDATEquery($tablec, $where, $updateArray) ;
// Aus allen Datensätzen der Tabelle bookings Kurs-ID auslesen und in Tabelle Course part_act um 1 erhöhen
// Und die Gebühr aus der Tabelle course in bookings übernehmen
$where = 'deleted = 0 and hidden = 0';
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*", $tableb, $where, '', '' ) ;
if (mysql_error()) debug(array(mysql_error(), $query)) ;
while ($row = $GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res))
{
$paid = $row[paid] ;
$cuid = $row[course_id];
// Auslesen Satz aus Kurstabelle und Updaten Anzahl Buchungen
$rowc = $this->pi_getRecord($tablec, $cuid );
$costs = $rowc[costs];
$open = $costs - $paid ;
$part_new = $rowc[part_act] + 1 ;
$updateArray = array('part_act' => $part_new );
$where = "uid = $cuid" ;
$res = $GLOBALS['TYPO3_DB']->exec_UPDATEquery($tablec, $where, $updateArray) ;
// In Tabelle Booking Updaten Cost und zu Zahlen
$updateArray = array('to_pay' => $costs, 'open' => $open) ;
$where = "course_id = $cuid" ;
$res = $GLOBALS['TYPO3_DB']->exec_UPDATEquery($tableb, $where, $updateArray);
echo(" UPDATE Kursgebuehr: ".$where . ". " );
} // Ende Verbuchen
// Anhand des Wertes part_act in der Tabelle courses die Felder part_free, status und clip neu setzen
$where = 'deleted = 0 and hidden = 0';
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*", $tablec, $where, '', '' ) ;
if (mysql_error()) debug(array(mysql_error(), $query)) ;
while ($row = $GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res))
{
$course_id = $row[uid];
$where = "uid = $course_id" ;
$part_free = $row[part_max] - $row[part_act] ;
if ($part_free == 0) { $img_status = 'BStatus3.gif'; $txt_status = 'ausgebucht';}
else if ($part_free < 6) { $img_status = 'BStatus2.gif'; $txt_status = 'kann starten';}
else { $img_status = 'BStatus1.gif'; $txt_status = 'noch zu wenig';}
$updateArray = array('part_free' => $part_free, 'clip' => $img_status, 'status' => $txt_status) ;
$res = $GLOBALS['TYPO3_DB']->exec_UPDATEquery($tablec, $where, $updateArray);
echo (" UPDATE in Tabelle Courses!" ) ;
}
Ich weiß, es ist ein gigantischer Wust.
Vielleicht hilft ja ein klein wenig Erläuterung:
Hier werden abwechselnd 2 Tabellen bearbeitet: Buchungen und Kurse
In der Tabelle Kurse wird für jeden Kurs der Anmeldestand mit Null vorbelegt
Für jede Buchung wird in der Tabelle Kurse der Anmeldestand um 1 erhöht.
Dabei wird aus der Tabelle Kurse die Kursgebühr in den Buchungssatz übernommen und
im Buchungssatz die Restgebühr neu berechnet
Nach Durchführung der Buchungen werden in der Tabelle Kurse die Felder
part_free, status und clip neu gefüllt.
Vielen Dank im Voraus
Viki