Fehlermeldung bei Terminausgabe

Gesperrt
digitalgestalter
Beiträge: 50
Registriert: Di 15. Nov 2005, 13:54
Wohnort: Gummersbach
Kontaktdaten:

Fehlermeldung bei Terminausgabe

Beitrag von digitalgestalter » Mo 23. Okt 2006, 09:04

Hallo zusammen,

ich benutze eine 4.6.4er Version von Contenido. Bei dem Terminmodul welches ich benutze kommt es, sobal ich im Bereich Headline oder Text über den eigentlichen Terminen etwas Text eingebe und speichere, nun zu folgender Fehlermeldung:

Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent in /homepages/31/d122813052/htdocs/cms/front_content.php(771) : eval()'d code on line 768

Leider weiß ich nicht mehr woher dieses Modul stammt. Ich glaube hier aus dem Forum. Deshalb habe ich es hier mal gepostet:

Code: Alles auswählen

<?php 
$gefunden=0; // um zu überprüfen, ob überhaupt Termine vorliegen 
$date = date("Y-m-d"); 
echo '<table border=0 cellspacing=0 cellpadding=0 width="500px">'; 
echo "<tr><td colspan=2  height=\"40\" class=\"headline\">CMS_HTMLHEAD[1]</td></tr>"; // Überschrift der Seite mit der Termin-Übersicht 
echo "<tr><td colspan=2 class=\"text\">CMS_HTML[2]</td></tr>"; // Weiterer Text 


$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 (= Terminübersicht) 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 Datensätze 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 ) // überprüfen, ob Monatsnahme einzufügen ist 
   { 
    $farbe=0; 
    if ( $gefunden == 1 ) 
    { 
     echo '      </table>'; 
    } 
    echo '      <table width="500px" border="0" cellspacing="0" cellpadding="2" class="text"> 
        <tr><td colspan="2">&nbsp;</td></tr>
        <tr> 
          <td colspan="2" height="30" class="termine_monat" align="center" style="border:0px solid #000000; background-color: #287428"><span class="text_weiß">'; 
    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).'</span></td> 
        </tr>'; 
   } 
   $gefunden=1; 
   echo '        <tr'; 
   if ( $farbe == 1 ) 
   { 
    echo ' bgcolor="#CCCCCC"'; 
   } 
   echo '> 
          <td colspan="2" height="25" valign="bottom" width="500px" align="left"><br>'.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].'&nbsp;Uhr'; 
   } 
   if ( strlen(substr($termin["datum2"][$i],8,2)) > 1 || strlen($termin["zeit2"][$i]) >1 ) 
   { 
    echo ' bis '; 
    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].'&nbsp;Uhr'; 
    } 
   } 
   echo '</td></tr><tr> 
          <td class="termin" colspan="2" width="500px" valign="top" align="left" style="background-color: #FFFFFF"><b>'.urldecode($termin["titel"][$i]).'</b></td> 
            </tr><tr><td colspan="2"><img src="upload/layout/dot_blue.gif" width="100%" height="1"></td>
        </tr>'; 
   if ( strlen($termin["ort"][$i]) > 1 ) 
   { 
    echo '        <tr'; 
    if ( $farbe == 1 ) 
    { 
     echo ' bgcolor="#FFFFFF"'; 
    } 
    echo '> 
           <td width="80px" valign="top" >Ort:</td>
            <td width="460px" valign="top" >'.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="#FFFFFF"'; 
    } 
    $db->next_record(); 
    echo '> 
           <td width="80px" height="40" valign="top" >Details:</td>
            <td width="460px" valign="top" >'.urldecode($db->f("value")).'</td></tr>'; 
   } 
   if ( $farbe == 1 ) { $farbe=0; } else { $farbe=0; } 
  } 
} 
} 
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt 
{ 
echo ' <tr> 
  <td class "Termine_monat" colspan=2><br><br>Zur Zeit liegen keine aktuellen Termine vor!</td> 
</tr>'; 
} 
?> 
      </table> 
Vielleicht kann mir jemand bei der beseitigung dieses Problems helfen, da ich in der Suche nichts hilfreiches finden konnte. Vielen Dank im Voraus. :wink:

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mo 23. Okt 2006, 09:59

http://www.contenido.org/forum/viewtopi ... 0993#70993
insbesondere Punkt 1:
Beispiele für "gute" Suchbegriffe sind Dateinamen aus PHP-Fehlermeldungen (z.B. "Fatal error: Error: Can't include pfad/zur/datei/functions.xyz.php in pfad/zur/datei/functions.abc.php on line 123"), der Name des benutzten Suchmoduls oder die Bezeichnung der gewuenschten Funktionalität eines gesuchten Moduls (hier evtl. synonyme Begriffe verwenden). Oft ist es außerdem sinnvoll mehrere Begriffe anzugeben (z.B. "upload tinymce") und mal die Funktionen der Suche zu verwenden ("nach allen Wörtern suchen", explizit ein Forum wie "Bugs" oder "Tipps & Tricks" auszuwählen).
Damit findest du auch andere Threads, wo die von dir erwaehnte Fehlermeldung vorkommt!
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Re: Fehlermeldung bei Terminausgabe

Beitrag von schlaucher » Mo 23. Okt 2006, 10:06

digitalgestalter hat geschrieben:Hallo zusammen,

ich benutze eine 4.6.4er Version von Contenido. Bei dem Terminmodul welches ich benutze kommt es, sobal ich im Bereich Headline oder Text über den eigentlichen Terminen etwas Text eingebe und speichere, nun zu folgender Fehlermeldung:

Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent in /homepages/31/d122813052/htdocs/cms/front_content.php(771) : eval()'d code on line 768
Hallo digitalgestalter,

der Fehler ist folgender:
Durch das Speichern der Headline und des zusätzlichen Textes werden in der Tabelle con_content für den Artikel mehrere Einträge angelegt, die die gleiche typeid haben. Bei der switch ($db->f("typeid")) Verzweigung erhälst Du dann für einen Termine eine Unterschiedliche Anzahl von Einträgen in den Arrays und somit den Fehler array_multisort() [function.array-multisort]: Array sizes are inconsistent

Abhilfe:
Entwerde Du nimmst ein anders Terminmodul z.B. http://www.contenido.de/forum/viewtopic.php?t=13412 oder http://www.contenido.de/forum/viewtopic.php?t=13425 die diesen Fehler bereits abfangen, oder Du musst das Modul selbst umschreiben um den Fehler zu beseitigen.

Hilfe:
Die Felder, welche mit switch ($db->f("typeid")) ausgelesen werden haben alle den idtype = 3. HTML Header und HTML Text haben einen anderen idtype.

Gruß
schlaucher

digitalgestalter
Beiträge: 50
Registriert: Di 15. Nov 2005, 13:54
Wohnort: Gummersbach
Kontaktdaten:

Beitrag von digitalgestalter » Do 26. Okt 2006, 16:27

Vielen Dank für die Antwort, damit werd ich es wohl hinbekommen!!! :D

Gesperrt