PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit MySQL in Typo3-CMS


yamukud
09.10.2009, 13:21:18
Ich weiß, ich bin schrecklich.
Ich arbeite mich zur Zeit in 4 Programmiersprachen ein, seht mir diese Frage also nach.

Das ganze ist ein Reservierungskalender, der in einer Typo3-CMS angezeigt wird. Für die Verarbeitung wird neben CSS und Typoscript auch PHP mit MySQL verwendet.

Durch diese komplexen Zusammenhänge bin ich nicht in der Lage, das Problem selbst zu lösen. Nur PHP wäre kein Problem und nur MySQL auch nicht.

Jetzt zur Aufgabenstellung: Ich habe eine Tagesansicht, die drei Spalten enthält: Zeit, großer Besprechungsraum, kleiner Besprechungsraum.

Jetzt möchte ich, wenn noch gar keine Events für den Tag da sind, leere Felder mit einem Symbol zum Hinzufügen von einem Event anzeigen lassen. -> KEIN PROBLEM

Wenn ich beide Kategorien (kleiner Besprechungsraum, großer Besprechungsraum) habe, sollen in allen Feldern ebenso die Symbole erscheinen und dazu die Events in den zugehörigen Zeitfenstern -> KEIN Problem

PROBLEM: Wenn ich nur Events in einer Kategorie habe, werden nur die Spalten "Zeit" und "Großer Besprechungsraum" angezeigt. Wie schaffe ich es, dass unter diesen Voraussetzungen auch die andere Kategorie erscheint, mit leeren Feldern und dem Symbol?

num Fields gehts nicht, da ich zB nicht vorher weiß, ob später noch Events auftauchen.

Vielen Dank für die Zeit, nun der Quellcode (rot=irrelevant, aber Struktur):

function viewDayInside ($day, $month, $year, $event) {


//STRUKTUR STRUKTUR STRUKTUR
$daytime = mktime (0, 0, 0, $month, $day, $year, -1);
$tmp = getdate();
$today = mktime (0, 0, 0, $tmp['mon'], $tmp['mday'],$tmp['year'], -1);

if ($daytime>=$today){
$content = '<table>';
}
else{
$content = '<table>';
}

$todaybeg = mktime (1, 0, 0, $month, $day, $year, -1);
$todayend = mktime (23, 0, 0, $month, $day, $year, -1);

$compt =0;
$cat = Array();
$cat = $this->getCat();
$iscat = Array();
// STRUKTUR ENDE
// INITIIERUNG
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid, pid, category','tx_feevcal_ev','dtbegin >='.$todaybeg.' AND dtend<='.$todayend.' AND pid='.$this->PID.'','', '');

while ($row = mysql_fetch_array($res))
{
if ( isset($cat) ) foreach($cat as $b){if ( $b['uid'] == $row['category'] ) $iscat[$b['uid']] = true;}
if ( $row['category'] == 0 ) $compt++;
}
$hallo = 1;
for ($time = 7; $time<= 18; $time++) {
if ($time == 7) {
// Erste Zeile mit Überschriften (schlecht gelöst, aber wurscht) -> IRRELEVANT
$content .= '<tr><td bgcolor="'.$this->color['headertablecolor'].'" width="40">'.'</td>';
$content .= '<td><font color=#33cc66><b>'.'Gro&szlig;er&nbsp;Besprechungsraum'.'</td></font></b>';
$content .= '<td><font color=#1e90ff><b>'.'Kleiner&nbsp;Besprechungsraum'.'</td></font></b></tr>';
} else {
$content .= '<tr><td bgcolor="'.$this->color['headertablecolor'].'" width="40"><b>'.$time.':00</b></td>';
// Keine Events vorhanden ausgespart -> IRRELEVANT
....
// Es sind Events vorhanden: DARUM GEHTS
if (count($event) > 0) {
if ( $compt > 0 ){
$content .= '<td bgcolor="'.$this->color['bgColorDayNoEvent'].'">';
for ($id=0;$id<count($event);$id++) {
if ($event[$id]['category'] == 0) {
$content .= $this->eventDayEvent($event,$year,$month,$day,$time,$id);
}
}$content .= '&nbsp</td>';
}

if ( $cat != NULL ) {
foreach($cat as $a)
{
if ( $iscat[$a['uid']] == true ) {
$content .= '<td bgcolor="'.$this->color['bgColorDayNoEvent'].'">';
for ($id=0;$id<count($event);$id++) {
if ($event[$id]['category'] == $a['uid']) {
$content .= $this->eventDayEvent($event,$year,$month,$day,$time,$id);
}
}//for
if ($time != 7 ) {
$content .= '<a href="index.php?id='.$_GET['id'].'&amp;view=30 &amp;no_cache=1 &beginhour='.$time.' &thisday='.$day.' &thismonth='.$month.' &thisyear='.$year.'">'.'<img border="0" src="'.t3lib_extMgm::siterelpath('feevcal').'img/plus.gif">'.'</td>';
}
}
}//foreach
}
}//else
$content .= '</tr>';
}
}
$content .= '</table>';
return $content;
// DARUM GEHTS ENDE
}