Fehler im Log

Gesperrt
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

Fehler im Log

Beitrag von andrej »

Hallo, ich habe andauernd Fehler in meinem Log. Wie finde ich den raus, in welchem Modul diese sind, und wie behebe ich diese?

Hier der Code
[30-May-2005 21:34:10] MySQL error 1064: You have an error in your SQL syntax near 'AND CAT.idcat = CATLANG.idcat
AND CATLANG.idlang = ' at line 9
SELECT
CAT.idcat AS idcat,
name
FROM
cms_cat AS CAT,
cms_cat_lang AS CATLANG

WHERE CAT.idcat =
AND CAT.idcat = CATLANG.idcat
AND CATLANG.idlang = '1'
AND CATLANG.visible = '1'
[30-May-2005 21:34:10] next_record called with no query pending.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

du könntest alle module mal nach dem hier durchsuchen
-> WHERE CAT.idcat =

denn anscheinend fehlt da was...

tippe auf ein nicht konfiguriertes modul...

vermutlich output bereich und nach dem = wird sich ein CMS_VALUE[X] ohne ' ' finden...

ist nur ne schätzung....
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ach ja -> kein bug... das kommt ziemlich sicher (zu 99.9%) aus einem modul...
*** make your own tools (wishlist :: thx)
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

Beitrag von andrej »

Hmm Stamm wohl aus diesem Modul. Kannst Du mir bei der Fehlersuche helfen?

Code: Alles auswählen

/*********************************************** 
* CONTENIDO MODUL 
* 
* Modulname    :   SN_NavMod 
* Modulversion :   0.7 alpha 
* Author       :   Stefan Bürk 
* Kontakt      :   Email: webmaster@skyblader.org 
* Copyright    :   SkyBlader Networxx, Stefan Bürk 
* C-Version    :   4.4 
* Created      :   09-03-2004 
* Modified     :   27-01-2005 
* 
* Beschreibung : 
* 
* Navigationsstruktur für Untermenüs mit 1 Navigationsebene, 
* Ausgabe ist im Output Modul über Variabeln steuerbar. 
* 
************************************************/ 

27.01.2005 
========== 

OUT   Zusätliche Überprüfung von $catPrev auf LEERSTRING und --kein-- hinzugefügt und 
   ausführung der HTLM-Output Generierung nur in dem Fall das $catPrev weder Leer noch 
   --KEIN-- enthält ==> ErrorLog Eintrag sollte dadurhc nicht mehr erscheinen. 

11.01.2005 
========== 

IN   Ausgabefeld ohne Überprüfung auf Gültigkeit für 

    " Hinzufügen einer Zeichenkette nach N-Navigationsitems " - Anzahl 

   und für 

    " Hinzufügen einer Zeichenkette nach N-Navigationsitems " - Anzufügende Zeichenkette 


OUT   Hinzufügen der Funktionalität zur Outputgenerierung für 

    " Hinzufügen einer Zeichenkette nach N-Navigationsitems " 

21.10.2004 
========== 

IN   Entfernen der Defaultwerte, da diese immer eingetragen wurden wenn 
   Feld leerwar und zur Konfiguration gesprungen wurde 

   Bei Auswahl von "-- kein --" anderen Wert nehmen, da der Wert "0" 
   in der DB auch eine Kategorie bezeichnet ---> "0" => "--kein--" 

   Hinzufügen von Beschriftungsvariabeln, um ein Umstellen auf das 
   Modul-Sprachsteuerungsfeature von 4.5.x / 4.6  vorzubereiten. 

OUT   Überprüfungen eingebaut, um bei angabe von "-- kein --" auch wirklich 
   keine Ausgabe zu generieren. 

   Mehrfachunterstützung durch anpassungen im Code hergestellt. 

21.09.2004 
========== 

OUT   Implementierung von zwei Funktionen, um für den Highlight Teil die 
   Überprüfung, ob ein Entry hervorgehoben werden darf, auch bei Kinder 
   ebene innerhalb des Kategoriebaumes sicherzustellen. 

   Desweiteren wurde die im Inputteil als Konfigurierbar bereitgestellten 
   Variabeln für die CSS-Klassenauswahl für Link und LinkHervorgehoben 
   in der Routine nun berücksichtig. 

IN   Auswahlschalter für HighlightingsÜberprüfung unter Berücksichtigung 
   von CHILD-Ids implementiert => cfg_check_parequal 

IN   Konfiguration zur Konfigurierung für die CSS-Klasse für NavLink und 
   NavLink Hervorgehoben (Aktuelle Category) 




20.09.2004 
========== 

IN   Implementierung von weiteren Konfigurationsmöglichkeiten für 

   - VorLink 
   - NachLink 
   - LinkTrennzeichen 
   - Anfang 
   - Ende 

   bei einem Aufbau der Linksammlungen für das dynamische Menü im 
   folgenden Format: 

   ANFANG + [ VorLink + {LINK} + NachLink ] + LinkTrennzeichen + [ VorLink + {LINK} + NachLink ] ..... + Ende 

OUT   Anpassen der Ausgabeerstellungsroutingen, um die neue Konfigurierbarkeit in den 
   Routinen zu berücksichtigen. 



17.09.2004 
========== 

OUT   Erweiterung um weitere Konfigurationsvariablen für die Ausgabensteuerung, 
   um eine weitere modularisierung zu bewerkstelligen. 

   Dazu wurden unter anderem auch drei kleine Bugs entfernt, die vorher nicht 
   aufgefallen sind, und erst durch die modularisierung zum tragen kamen. 

30.06.2004 
========== 


out   Manuelle sortierung der CatIds auf Grund der PREID, da dies durch 
   eine SQL Anweisung nicht zu bewerkstelligen ist. 
    
   --> siehe http://www.contenido.de/forum/viewtopic.php?t=4576 
    
in   Font und Select auf BackEnd CSS Klassen vom umgestellt. 


19.03.2004 
========== 

out   DB-Abfrage 2 ( $sql ) lesbar für Otto-Normal-Verbraucher formatiert 

17.03.2004 
========== 

out   Securitychecks implementiert um Injections zu unterbinden 
   -   lokale Modul-Variablen initalizieren um Injects zu unterbinden 
   -   Parametervariabeln gegen SQL-Injection-Versuche untersuchen 

Code: Alles auswählen

/*********************************************** 
* INPUT 
************************************************/ 

// selected category 
$selected             = "CMS_VALUE[3200]"; 
$selected_var         = "CMS_VAR[3200]"; 
$selected_desc         = "Wähle die Kategorie aus:"; 

$selected2            = "CMS_VALUE[3201]"; 
$selected2_var         = "CMS_VAR[3201]"; 
$selected2_desc         = "Wähle die Home-Kategorie aus:"; 

// cfg_prelink 
$cfg_prelink         = "CMS_VALUE[3202]"; 
$cfg_prelink_var      = "CMS_VAR[3202]"; 
$cfg_prelink_desc      = "Füge vor jedem Link hinzu:"; 

$cfg_postlink         = "CMS_VALUE[3203]"; 
$cfg_postlink_var      = "CMS_VAR[3203]"; 
$cfg_postlink_desc      = "Füge nach jedem Link hinzu:"; 

$cfg_linkdiv         = "CMS_VALUE[3204]"; 
$cfg_linkdiv_var      = "CMS_VAR[3204]"; 
$cfg_linkdiv_desc      = "Verwende als Trennung folgendes:"; 

$cfg_pre_str         = "CMS_VALUE[3205]"; 
$cfg_pre_str_var      = "CMS_VAR[3205]"; 
$cfg_pre_str_desc      = "Füge einmal am Anfang der Navigationsausgabe an:"; 

$cfg_post_str         = "CMS_VALUE[3206]"; 
$cfg_post_str_var      = "CMS_VAR[3206]"; 
$cfg_post_str_desc      = "Füge einmal am Ende der Navigationsausgabe an:"; 

$cfg_check_parequal      = "CMS_VALUE[3207]"; 
$cfg_check_parequal_var = "CMS_VAR[3207]"; 
$cfg_check_parequal_desc= "Auf Kategoriehighlight prüfen:"; 

$cfg_css_link         = "CMS_VALUE[3208]"; 
$cfg_css_link_var      = "CMS_VAR[3208]"; 
$cfg_css_link_desc      = "CSS-Klasse für normalen Navigationslink:"; 

$cfg_css_linkhl         = "CMS_VALUE[3209]"; 
$cfg_css_linkhl_var      = "CMS_VAR[3209]"; 
$cfg_css_linkhl_desc   = "CSS-Klasse für hervorgehobenen Navigationslink:"; 

$cfg_addstrafternumitems_num      = "CMS_VALUE[3210]"; 
$cfg_addstrafternumitems_num_var   = "CMS_VAR[3210]"; 
$cfg_addstrafternumitems_num_desc   = "Hinzufügen nach N-Navigationselementen - Anzahl:"; 

$cfg_addstrafternumitems_str      = "CMS_VALUE[3211]"; 
$cfg_addstrafternumitems_str_var   = "CMS_VAR[3211]"; 
$cfg_addstrafternumitems_str_desc   = "Hinzufügen nach N-Navigationselementen - Zeichenkette:"; 

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\"> 
        <tr valign=\"top\"> 
          <td class=\"text_medium\">".$selected_desc."</td> 
          <td class=\"text_medium\"> 
            <select class=\"text_medium\" name=\"".$selected_var."\">"; 
            if($selected!="--kein--" && $selected!=""){ 
             echo"<option value=\"--kein--\">--- kein ---</option>"; 

            }else{ 
            echo"<option selected=\"selected\" value=\"--kein--\">--- kein ---</option>"; 
            } 

            // fetch all categorys 
            $query = "   SELECT 
                     A.idcat, 
                     A.level, 
                     C.name 
                
                  FROM  ".$cfg["tab"]["cat_tree"]." AS A, 
                        ".$cfg["tab"]["cat"].     " AS B,  
                        ".$cfg["tab"]["cat_lang"]." AS C 
                        
                  WHERE 
                      A.idcat=B.idcat 
                           AND B.idcat=C.idcat 
                           AND C.idlang='$lang' 
                           AND B.idclient='$client' 
                           AND C.visible=1 ORDER BY A.idtree"; 
                            
            // execute query 
            $db->query($query); 

            // loop result and build the options 
            while ($db->next_record()) { 

              // indent spacer 
              $spaces = "|"; 

              // how many levels 
              $levels = $db->f("level"); 

              for ($i = 0; $i < $levels; $i ++) { 
                // add 2 spaces for every level 
                $spaces = $spaces . "--"; 

              } // end for 
              
              $spaces .= ">"; 


              if ($selected == $db->f("idcat")) { 
                // selected category 
                echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 

              } else { 
                // category 
                echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 

              } // end if 

            } // end while 

echo "      </select>"; 

echo "    </td> 
        </tr> 
        <tr valign=\"top\">        
          <td class=\"text_medium\">".$selected2_desc."</td> 
          <td class=\"text_medium\"> 
    
            <select class=\"text_medium\" name=\"".$selected2_var."\">"; 
            if($selected2!="--kein--" && $selected2!=""){ 
             echo"<option value=\"--kein--\">--- kein ---</option>"; 

            }else{ 
            echo"<option selected=\"selected\" value=\"--kein--\">--- kein ---</option>"; 
            } 

            // fetch all categorys 
            $query = "   SELECT 
                     A.idcat, 
                     A.level, 
                     C.name 
                
                  FROM  ".$cfg["tab"]["cat_tree"]." AS A, 
                        ".$cfg["tab"]["cat"].     " AS B,  
                        ".$cfg["tab"]["cat_lang"]." AS C 
                        
                  WHERE 
                      A.idcat=B.idcat 
                           AND B.idcat=C.idcat 
                           AND C.idlang='$lang' 
                           AND B.idclient='$client' 
                           AND C.visible=1 ORDER BY A.idtree"; 
                            
            // execute query 
            $db->query($query); 

            // loop result and build the options 
            while ($db->next_record()) { 

              // indent spacer 
              $spaces = "|"; 

              // how many levels 
              $levels = $db->f("level"); 

              for ($i = 0; $i < $levels; $i ++) { 
                // add 2 spaces for every level 
                $spaces = $spaces . "--"; 

              } // end for 
              
              $spaces .= ">"; 


              if ($selected2 == $db->f("idcat")) { 
                // selected category 
                echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 

              } else { 
                // category 
                echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 

              } // end if 

            } // end while 

echo "      </select>"; 
echo "    </td> 
        </tr>"; 

// ********************************************************************************************************* 
// *** cfg_prelink 
// ********************************************************************************************************* 
echo "  <tr valign=\"top\">        
          <td class=\"text_medium\">".$cfg_prelink_desc."</td> 
          <td class=\"text_medium\">"; 

echo "      <input class=\"text_medium\" name=\"".$cfg_prelink_var."\" value=\"".$cfg_prelink."\">"; 

echo "    </td> 
        </tr>"; 
// ********************************************************************************************************* 
// *** end cfg_prelink 
// ********************************************************************************************************* 
// ********************************************************************************************************* 
// *** cfg_postlink 
// ********************************************************************************************************* 
echo "  <tr valign=\"top\">        
          <td class=\"text_medium\">".$cfg_postlink_desc."</td> 
          <td class=\"text_medium\">"; 

echo "      <input class=\"text_medium\" name=\"".$cfg_postlink_var."\" value=\"".$cfg_postlink."\">"; 

echo "    </td> 
        </tr>"; 
// ********************************************************************************************************* 
// *** end cfg_postlink 
// ********************************************************************************************************* 
// ********************************************************************************************************* 
// *** cfg_linkdiv 
// ********************************************************************************************************* 
echo "  <tr valign=\"top\">        
          <td class=\"text_medium\">".$cfg_linkdiv_desc."</td> 
          <td class=\"text_medium\">"; 

echo "      <input class=\"text_medium\" name=\"".$cfg_linkdiv_var."\" value=\"".$cfg_linkdiv."\">"; 

echo "    </td> 
        </tr>"; 
// ********************************************************************************************************* 
// *** end cfg_linkdiv 
// ********************************************************************************************************* 
// ********************************************************************************************************* 
// *** cfg_pre_str 
// ********************************************************************************************************* 
echo "  <tr valign=\"top\">        
          <td class=\"text_medium\">".$cfg_pre_str_desc."</td> 
          <td class=\"text_medium\">"; 

echo "      <input class=\"text_medium\" name=\"".$cfg_pre_str_var."\" value=\"".$cfg_pre_str."\">"; 

echo "    </td> 
        </tr>"; 
// ********************************************************************************************************* 
// *** end cfg_pre_str 
// ********************************************************************************************************* 
// ********************************************************************************************************* 
// *** cfg_post_str 
// ********************************************************************************************************* 
echo "  <tr valign=\"top\">        
          <td class=\"text_medium\">".$cfg_post_str_desc."</td> 
          <td class=\"text_medium\">"; 

echo "      <input class=\"text_medium\" name=\"".$cfg_post_str_var."\" value=\"".$cfg_post_str."\">"; 

echo "    </td> 
        </tr>"; 
// ********************************************************************************************************* 
// *** end cfg_post_str 
// ********************************************************************************************************* 
// ********************************************************************************************************* 
// *** cfg_check_parequal 
// ********************************************************************************************************* 
echo "  <tr valign=\"top\">        
          <td class=\"text_medium\">".$cfg_check_parequal_desc."</td> 
          <td class=\"text_medium\">"; 

echo "      <input class=\"text_medium\" type=\"checkbox\" name=\"".$cfg_check_parequal_var."\" value=\"0\""; 
if ( $cfg_check_parequal == 1 ) 
{ 
   echo " checked=checked"; 
} 

echo ">"; 
echo "    </td> 
        </tr>"; 
// ********************************************************************************************************* 
// *** end cfg_check_parequal 
// ********************************************************************************************************* 
// ********************************************************************************************************* 
// *** cfg_css_link 
// ********************************************************************************************************* 
echo "  <tr valign=\"top\">        
          <td class=\"text_medium\">".$cfg_css_link_desc."</td> 
          <td class=\"text_medium\">"; 

echo "      <input class=\"text_medium\" type=\"text\" name=\"".$cfg_css_link_var."\" value=\"".$cfg_css_link."\">"; 

echo "    </td> 
        </tr>"; 
// ********************************************************************************************************* 
// *** end cfg_css_link 
// ********************************************************************************************************* 
// ********************************************************************************************************* 
// *** cfg_css_linkhl 
// ********************************************************************************************************* 
echo "  <tr valign=\"top\">        
          <td class=\"text_medium\">".$cfg_css_linkhl_desc."</td> 
          <td class=\"text_medium\">"; 

echo "      <input class=\"text_medium\" type=\"text\" name=\"".$cfg_css_linkhl_var."\" value=\"".$cfg_css_linkhl."\">"; 

echo "    </td> 
        </tr>"; 
// ********************************************************************************************************* 
// *** end cfg_css_linkhl 
// ********************************************************************************************************* 



// ********************************************************************************************************* 
// *** cfg_addstrafternumitems_num 
// ********************************************************************************************************* 
/* 
$cfg_addstrafternumitems_num      = "CMS_VALUE[3210]"; 
$cfg_addstrafternumitems_num_var   = "CMS_VAR[3210]"; 
$cfg_addstrafternumitems_num_desc   = "Hinzufügen nach N-Navigationselementen - Anzahl:"; 
*/ 
echo "  <tr valign=\"top\">        
          <td class=\"text_medium\">".$cfg_addstrafternumitems_num_desc."</td> 
          <td class=\"text_medium\">"; 

echo "      <input class=\"text_medium\" type=\"text\" name=\"".$cfg_addstrafternumitems_num_var."\" value=\"".$cfg_addstrafternumitems_num."\">"; 

echo "    </td> 
        </tr>"; 
// ********************************************************************************************************* 
// *** end cfg_css_linkhl 
// ********************************************************************************************************* 



// ********************************************************************************************************* 
// *** cfg_css_linkhl 
// ********************************************************************************************************* 
/* 
$cfg_addstrafternumitems_str      = "CMS_VALUE[3211]"; 
$cfg_addstrafternumitems_str_var   = "CMS_VAR[3211]"; 
$cfg_addstrafternumitems_str_desc   = "Hinzufügen nach N-Navigationselementen - Zeichenkette:"; 
*/ 
echo "  <tr valign=\"top\">        
          <td class=\"text_medium\">".$cfg_addstrafternumitems_str_desc."</td> 
          <td class=\"text_medium\">"; 

echo "      <input class=\"text_medium\" type=\"text\" name=\"".$cfg_addstrafternumitems_str_var."\" value=\"".$cfg_addstrafternumitems_str."\">"; 

echo "    </td> 
        </tr>"; 
// ********************************************************************************************************* 
// *** end cfg_css_linkhl 
// ********************************************************************************************************* 

echo "</table>"; 

Code: Alles auswählen

<?php 

/*********************************************** 
* OUTPUT 
************************************************/ 

include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php"); 

// **************************************************************************************************** 
// SECURITY-CHECKS 
// **************************************************************************************************** 

// SQL-Injection Überprüfungen und Work-Arounds 

// lokale Variabeln initialisieren um Injections zu unterbinden 
$db2       = ""; 
$catStart  = ""; 
$catPrev   = ""; 
$sTmpStr   = ""; 
$db2_sql   = ""; 
$catIds    = ""; 
$key       = ""; 
$val       = ""; 
$sql       = ""; 

// **************************************************************************************************** 

// erstelle eine zweite DB-Klasseninstanz, da wir hier 
// mit zwei Abfragen udn Resultsets arbeiten müssen 
$db2 = new DB_Contenido; 

/* 
$eckkla_auf   = '::&nbsp;'; 
$eckkla_zu    = ''; 
$eckkla_trenn = '<br>'; 

$strBEGIN = ''; 
$strEND   = ''; 
*/ 

// Hole aus der Artikeldefinition die Ausgewählte Einstellungen 
$catStart                   = "CMS_VALUE[3200]"; 
$catPrev                    = "CMS_VALUE[3201]"; 
$eckkla_auf                  = "CMS_VALUE[3202]"; 
$eckkla_zu                   = "CMS_VALUE[3203]"; 
$eckkla_trenn                = "CMS_VALUE[3204]"; 
$strBEGIN                   = "CMS_VALUE[3205]"; 
$strEND                     = "CMS_VALUE[3206]"; 
$cfg_chkchildid             = "CMS_VALUE[3207]"; 
$cfg_css_link               = "CMS_VALUE[3208]"; 
$cfg_css_linkhl             = "CMS_VALUE[3209]"; 
$cfg_addstrafternumitems_num    = "CMS_VALUE[3210]"; 
$cfg_addstrafternumitems_str    = "CMS_VALUE[3211]"; 


// * get catPrec Category and output CatName as [ BackTo ]  nav item 


if ($catStart != "" && $catStart != "--kein--" ) { 
  $sTmpStr = ""; 

        if ( $catPrev != "" && $catPrev != "--kein--" ) { 
        // Datenbankabfrage ( SQL QUERY ) aufbauen 
        $sql = "   SELECT 
                       CAT.idcat AS idcat, 
                       name 
                    FROM 
                       ".$cfg["tab"]["cat"]." AS CAT, 
                       ".$cfg["tab"]["cat_lang"]." AS CATLANG 
              
                     WHERE   CAT.idcat = ".$catPrev." 
                           AND CAT.idcat = CATLANG.idcat 
                           AND CATLANG.idlang = '$lang' 
                           AND CATLANG.visible = '1'"; 
                      
        // Datenbankabfrage durchführen 
        $db->query($sql); 


        // die einzelnen Recordsets der Datenbankabfrage durchgehen 
        while ( $db->next_record() ) { 

      // überprüfung, ob schon ein Eintrag in der Ausgabevariabel ist 
           if ( strlen($sTmpStr) == 0 ) { 
               // ... Nein, dann die Formatierung für den ersten Eintrag verwenden 
               // und den Eintrag der Ausgabevariabel hinzufügen 
               $sTmpStr = $sTmpStr . $strBEGIN .  $eckkla_auf . '<a class="'.$cfg_css_link.'" href="index.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>' . $eckkla_zu; 
           } 
           else 
           { 
               // ... Ja, dann die Formatierung für die weiteren Einträge verwenden und 
               // den Eintrag der Ausgabevariabel hinzufügen 
               $sTmpStr = $sTmpStr . $eckkla_trenn . $eckkla_auf . '<a class="'.$cfg_css_link.'" href="index.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>' . $eckkla_zu;          
           }  // end if 

        } // end while 
        
        } // end $catPrev überprüfung 
    
                        
   $db2_sql = "   SELECT 
            * 
         FROM ". $cfg["tab"]["cat"] ." AS A 
       
         WHERE 
          
           A.parentid = ". $catStart . " 

                                                ORDER BY A.preid 

                                                 "; 

   // Abfrage ausführen 
   $db2->query($db2_sql); 

     // Ermittlung aller Kategorie IDs der ausgesuchten 
     // Navigationsebene und speicherug in einem Array 
   while ( $db2->next_record() ) { 
             // $catIds[] = $db2->f("idcat"); 
      $test_1[$db2->f("preid")] = $db2->f("idcat"); 
   } 
    
/* 
PREID => IDCAT  ( $test_1 ) 
Array ( 
   [0]    => 50 

   [26]    => 27 
   [27]    => 28 
   [28]    => 29 
   [29]    => 30 
   [30]    => 31 
   [31]    => 32 
   [32]    => 33 
   [33]    => 38 
   [34]    => 35 
   [35]    => 36 
   [36]    => 37 
   [38]    => 34 
   [50]    => 26 
) 
------------------------------------ 
*/ 

// --------------------------------------------- 
// sort ids 
$ar_anz = count($test_1); 
$lpre = 0; 
$test_3 = ""; 
$ires = ""; 

for ( $sli = 1 ; $sli <= $ar_anz ; $sli++ ) 
{ 
   $ires        = $test_1[$lpre];    
   $test_3[]    = $test_1[$lpre];    
   $lpre        = $ires; 
} 


// print_r($test_3); echo '<br><br>'; 
$catIds = $test_3; 
// --------------------------------------------- 

  // Überprüfung ob $catIds wirklich ein Array ist 
  if ( is_array($catIds) ) { 

    // die einzelnen IDs durchgegen 
    $cntAddStrAfterNItems = 1; 
    foreach($catIds as $key=>$val) { 

        
        // Datenbankabfrage ( SQL QUERY ) aufbauen 
        $sql =    "   SELECT 
                       CAT.idcat AS idcat, 
                       name 
                    FROM 
                       ".$cfg["tab"]["cat"]." AS CAT, 
                       ".$cfg["tab"]["cat_lang"]." AS CATLANG 
              
                     WHERE   CAT.idcat = ".$val." 
                           AND CAT.idcat = CATLANG.idcat 
                           AND CATLANG.idlang = '$lang' 
                           AND CATLANG.visible = '1'"; 

        // Datenbankabfrage durchführen 
        $db->query($sql); 


        // die einzelnen Recordsets der Datenbankabfrage durchgehen 
        
        while ( $db->next_record() ) { 
            
        
   if ( $cfg_chkchildid && sn_check_if_child ( $idcat, $catStart )) 
   { 
           // überprüfung, ob schon ein Eintrag in der Ausgabevariabel ist 
              if ( strlen($sTmpStr) == 0 ) { 
                     // ... Nein, dann die Formatierung für den ersten Eintrag verwenden 
                     // und den Eintrag der Ausgabevariabel hinzufügen 
                     $sTmpStr = $sTmpStr . $strBEGIN .  $eckkla_auf . '<a class="'.$cfg_css_linkhl.'" href="index.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>' . $eckkla_zu; 
              } 
              else 
              { 
                     // ... Ja, dann die Formatierung für die weiteren Einträge verwenden und 
                     // den Eintrag der Ausgabevariabel hinzufügen 
                     $sTmpStr = $sTmpStr . $eckkla_trenn . $eckkla_auf . '<a class="'.$cfg_css_linkhl.'" href="index.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>' . $eckkla_zu;          
              }  // end if 
   } 
   else 
   { 
           // überprüfung, ob schon ein Eintrag in der Ausgabevariabel ist 
              if ( strlen($sTmpStr) == 0 ) { 
                     // ... Nein, dann die Formatierung für den ersten Eintrag verwenden 
                     // und den Eintrag der Ausgabevariabel hinzufügen 
                     $sTmpStr = $sTmpStr . $strBEGIN .  $eckkla_auf . '<a class="'.$cfg_css_link.'" href="index.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>' . $eckkla_zu; 
              } 
              else 
              { 
                     // ... Ja, dann die Formatierung für die weiteren Einträge verwenden und 
                     // den Eintrag der Ausgabevariabel hinzufügen 
                     $sTmpStr = $sTmpStr . $eckkla_trenn . $eckkla_auf . '<a class="'.$cfg_css_link.'" href="index.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>' . $eckkla_zu;          
              }  // end if 
   } 
    


        } // end while 
        
    // Wenn N-Item ausgegeben wurden ... 
    if ( $cntAddStrAfterNItems == $cfg_addstrafternumitems_num ) 
    { 
            // Zeichenkette einfügen und Counter zurücksetzen 
           $sTmpStr = $sTmpStr . $cfg_addstrafternumitems_str; 
            $cntAddStrAfterNItems = 1; 
    } 
    else 
    { 
       // ansonsten Counter einfach um 1 erhöhen 
      $cntAddStrAfterNItems = $cntAddStrAfterNItems + 1; 
    } // end if 
    
    }  // end foreach 

    // END Zeichen $strEND anfügen 
    $sTmpStr = $sTmpStr . $strEND; 

    // Ausgabevariabel schreiben, da nun alle Einträge behandelt wurden. 
    echo $sTmpStr; 
  } // end if (is_array) 


} 


if ( $sn_navmod != "multiuse" ) { 
$sn_navmod = "multiuse"; 


function sn_check_if_child ( $l_idcat, $l_paridcat ) 
{ 
   $bResult = false; 
   $l_int   = $l_idcat; 

   while ( $l_int != 0 && $l_int != $l_paridcat ) 
   { 
      $l_int = get_parentid_from_idcat ( $l_int ); 

      if ( $l_int == $l_paridcat ) 
      { 
         $bResult = true; 
      } // end if 
   } // end while 
    
   return $bResult; 
} // check_if_child 

function get_parentid_from_idcat ( $l_idcat ) 
{ 
   $ldb = new DB_Contenido; 
   $lsql= "SELECT * 
      FROM    ".$cfg["tab"]["cat"]." AS CAT, 
                    ".$cfg["tab"]["cat_lang"]." AS CATLANG 
              
                WHERE   CAT.idcat = ".$l_idcat." 
                        AND CAT.idcat = CATLANG.idcat 
                        AND CATLANG.idlang = '$lang' 
                        AND CATLANG.visible = '1'"; 

   $ldb->query($lsql); 

   while ( $ldb->next_record() ) 
   { 
      $l_parid = $ldb->f("parentid"); 
   } 

   return $l_parid; 

} // end function get_parentid_from_idcat 

} // end MULTIUSE Funktions 
?> 
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

skyblader kennt das modul sicher besser als ich

Code: Alles auswählen

if ( $catPrev != "" && $catPrev != "--kein--" ) { 
würd ich mal ersetzen durch

Code: Alles auswählen

if ( trim($catPrev) != "" && $catPrev != "--kein--" ) { 
falls das wirklich das modul ist dürfte der fehler nicht mehr auftreten...
*** make your own tools (wishlist :: thx)
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

Beitrag von andrej »

Hmm, leider wird der Fehler immer noch erzeugt. Ist es sinnvol die con_code tabelle zu leeren, bevor das Modul wieder ausgeführt wird?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ersetz noch

Code: Alles auswählen

WHERE   CAT.idcat = ".$catPrev." 
durch

Code: Alles auswählen

WHERE   CAT.idcat = '$catPrev' 

Code: Alles auswählen

WHERE   CAT.idcat = ".$val."
durch

Code: Alles auswählen

WHERE   CAT.idcat = '$val'
irgendwo ist anscheinend das modul nicht richtig konfiguriert...
*** make your own tools (wishlist :: thx)
Gesperrt