Probleme mit einem Terminmodul
Verfasst: So 27. Aug 2006, 19:04
Hallo!
ich habe vor kurzem wieder begonnen ein projekt
weiter zu bearbeiten was ich zwecks zeitmangel auf eis
legen musste...
jetzt bin ich auf ein problem mit dem terminmodul
von der halchteranerin
Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent
ist der fehler den er mir beim aufruf der uebersichtsseite ausspuckt...
das ist der entsprechende code des moduls bei dem der fehler auftritt...
kann mir da jemand weiterhelfen?
vielen dank im voraus
gruß
ich habe vor kurzem wieder begonnen ein projekt
weiter zu bearbeiten was ich zwecks zeitmangel auf eis
legen musste...
jetzt bin ich auf ein problem mit dem terminmodul
von der halchteranerin
Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent
ist der fehler den er mir beim aufruf der uebersichtsseite ausspuckt...
Code: Alles auswählen
<?php
$gefunden=0; // um zu Ueberpruefen, ob ueberhaupt Termine vorliegen
$date = date("Y-m-d");
echo '<table border=0 cellspacing=0 cellpadding=0 width="100%" class="termin_table">';
echo "<tr><td colspan=2 class=\"termin_praetext\">CMS_HTML[1]</td></tr>"; // Weiterer Text
echo '<tr><td colspan=2> </td></tr>'; // Leerzeile vor der Termin-Uebersicht
$sql = "SELECT ARTLANG.idart, CONTENT.value, CONTENT.typeid
FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat"]." AS CAT, ".$cfg["tab"]["content"]." AS CONTENT
WHERE ARTLANG.idart = CATART.idart AND CATART.idcat = CAT.idcat AND ARTLANG.idartlang = CONTENT.idartlang
AND ARTLANG.idlang = '".$lang."' AND CAT.idcat = '".$idcat."' AND CAT.idclient = '".$client."'
AND ARTLANG.online = '1' AND CATART.is_start='0'
ORDER BY ARTLANG.idart, CONTENT.typeid ASC"; // Alle Artikel der Kategorie einlesen, die nicht Startartikel (= Terminuebersicht) sind
$db->query($sql);
$j=0; $anz=0;
if ($db->num_rows() != 0)
{
$termin = array(array()); // Array erzeugen, in dem die Termine abgelegt werden;
while ($j < $db->num_rows()) // alle Datensaetze durchlaufen
{
$db->next_record();
if ($db->f("idart") > $termin["idart"][$anz])
{
$anz++;
}
switch ($db->f("typeid")) {
case 0: // Anfangstermin
$termin["datum1"][$anz] = $db->f("value");
$termin["idart"][$anz] = $db->f("idart");
break;
case 1: // Anfangsuhrzeit
$termin["zeit1"][$anz] = $db->f("value");
$termin["datum1"][$anz] = $termin["datum1"][$anz]." ".$termin["zeit1"][$anz];
break;
case 2: // Endtermin
$termin["datum2"][$anz] = $db->f("value");
break;
case 3: // Enduhrzeit
$termin["zeit2"][$anz] = $db->f("value");
$termin["datum2"][$anz] = $termin["datum2"][$anz]." ".$termin["zeit2"][$anz];
break;
case 4: // Ort
$termin["ort"][$anz] = $db->f("value");
break;
case 5: // Ortdetail
$termin["ortdetail"][$anz] = $db->f("value");
break;
case 6: // Titel
$termin["titel"][$anz] = $db->f("value");
break;
}
$j++;
}
array_multisort ( $termin["datum1"], SORT_ASC, SORT_STRING, $termin["datum2"], SORT_ASC, SORT_STRING,
$termin["ort"], $termin["ortdetail"],
$termin["zeit1"], $termin["zeit2"], $termin["idart"], $termin["titel"] ); // nach Datum sortieren
for ($i=0; $i<=$anz; $i++)
{
if ( $termin["datum1"][$i] >= $date || $termin["datum2"][$i] >= $date ) // nur Termine, die noch aktuell sind, aufnehmen
{
if ( substr($termin["datum1"][$i],5,2) !== substr($termin["datum1"][$i-1],5,2) || $gefunden == 0 ) // Ueberpruefen, ob Monatsnahme einzufuegen ist
{
$farbe=0;
if ( $gefunden == 1 )
{
echo ' </table>';
}
echo ' <table width="600" border="0" cellspacing="0" cellpadding="5" class="text" align="center">
<tr height="10px;"><td></td></tr>
<tr height="20">
<td colspan="2" class="termin_headline">';
switch (substr($termin["datum1"][$i],5,2)) {
case 1: echo "Januar"; break;
case 2: echo "Februar"; break;
case 3: echo "März"; break;
case 4: echo "April"; break;
case 5: echo "Mai"; break;
case 6: echo "Juni"; break;
case 7: echo "Juli"; break;
case 8: echo "August"; break;
case 9: echo "September"; break;
case 10: echo "Oktober"; break;
case 11: echo "November"; break;
case 12: echo "Dezember"; break; }
echo ' '.substr($termin["datum1"][$i],0,4).'</td>
</tr>';
}
$gefunden=1;
echo ' <tr';
if ( $farbe == 1 )
{
//echo ' bgcolor="#EEEEEE"';
}
echo '>
<td valign="top" width="100" align="left" class="termin_date_time">'.substr($termin["datum1"][$i],8,2).'.'.substr($termin["datum1"][$i],5,2).'.'.substr($termin["datum1"][$i],0,4);
if ( strlen($termin["zeit1"][$i]) >1 )
{
echo ', '.$termin["zeit1"][$i].' Uhr';
}
if ( strlen(substr($termin["datum2"][$i],8,2)) > 1 || strlen($termin["zeit2"][$i]) >1 )
{
echo '-<br>';
if ( strlen(substr($termin["datum2"][$i],8,2)) > 1 )
{
echo substr($termin["datum2"][$i],8,2).'.'.substr($termin["datum2"][$i],5,2).'.'.substr($termin["datum2"][$i],0,4);
if ( strlen($termin["zeit2"][$i]) >1 )
{
echo ', ';
}
}
if ( strlen($termin["zeit2"][$i]) >1 )
{
echo $termin["zeit2"][$i].' Uhr';
}
}
echo '</td>
<td width="490" valign="top" align="left" class="termin_title">'.urldecode($termin["titel"][$i]).'</td>
</tr>';
if ( strlen($termin["ort"][$i]) > 1 )
{
echo ' <tr';
if ( $farbe == 1 )
{
//echo ' bgcolor="#EEEEEE"';
}
echo '>
<td colspan="2" class="termin_ort"><b>Ort:</b> '.urldecode($termin["ort"][$i]).'</td>
</tr>';
}
$sql2 = "SELECT CONTENT.value
FROM ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat"]." AS CAT, ".$cfg["tab"]["content"]." AS CONTENT
WHERE ARTLANG.idart = ".$termin["idart"][$i]." AND ARTLANG.idartlang = CONTENT.idartlang AND CONTENT.typeid = '7'";
$db->query($sql2);
if ($db->num_rows() != 0)
{
echo ' <tr';
if ( $farbe == 1 )
{
//echo ' bgcolor="#EEEEEE"';
}
$db->next_record();
echo '>
<td colspan="2" class="termin_details"><b>Details:<br></b> '.urldecode($db->f("value")).'</td>
</tr>';
}
if ( $farbe == 0 ) { $farbe=1; } else { $farbe=0; }
}
}
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
echo ' <tr>
<td colspan=2 class="termin_details"><b>Es liegen aktuell keine Termine vor!</b></td>
</tr>';
}
?>
</table>
kann mir da jemand weiterhelfen?
vielen dank im voraus
gruß