Subversion-Projekte lars-tiefland.php_share

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?
        //if ($_SERVER["SERVER_ADDR"] != "127.0.0.1") { exit; }

        // forget about any script timeouts
        set_time_limit(0);
        
        mysql_connect("localhost","mediaran.de","m-dr-n");
        
        function message($msg)
        {
            //echo $msg."\n"
        }
        
        $Datenbanken=array
        (
            "mediaran_de"
        );
        
        foreach($Datenbanken as $DB)
        {
                // Datenbank anwählen
                message("use $DB");
                mysql_query ("use $DB") or die (mysql_errno().": ".mysql_error());
                 
                /* ######################################################################################################## */
                /* #    Tabellen füllen                                                                                   # */
                /* ######################################################################################################## */  

                foreach(array("such_woerter","such_quelle_to_such_woerter",) as $tab)
                {
                message("delete from $tab");
                        mysql_unbuffered_query("delete from $tab");
                }
                mysql_unbuffered_query("ALTER TABLE such_woerter AUTO_INCREMENT=0");

                $query_such_quelle="select * from such_quelle";
                $result_such_quelle = mysql_query ($query_such_quelle) or die (mysql_errno().": ".mysql_error()."<hr>".$query_such_quelle."<hr>");
                message($query_such_quelle);
        
                while($such_quelle=mysql_fetch_assoc($result_such_quelle))
                {
                        $query_such_index="select ".implode(", ",getKeys($DB.".".$such_quelle[quelle_tab])).",".$such_quelle[quelle_feldname]." from ".$such_quelle[quelle_tab]." ".$such_quelle[quelle_bedingung];
                        message($query_such_index);
                        $result_such_index = mysql_query ($query_such_index) or die (mysql_errno().": ".mysql_error()."<hr>".$query_such_index."<hr>");
                        while($such_index=mysql_fetch_assoc($result_such_index))                
                        {
                                foreach(preg_split ('/\s/', $such_index[$such_quelle[quelle_feldname]]) as $raw_keyword)
                                {
                                        //$keyword=trim(strip_tags($raw_keyword));
                                        
                                        $keyword
                                        =
                                        preg_replace
                                        (
                                                array
                                                (
                                                        "/[^A-Za-zÄÖÜäöüß0-9,]/"
                                                ),
                                                array
                                                (
                                                        ""
                                                ),
                                                $raw_keyword,
                                                -1
                                        );

                                        if (strlen($keyword) > 1)
                                        {
                                                $query_such_woerter="insert into such_woerter (wort) values ('$keyword')";
                                                if($result_such_woerter = mysql_query ($query_such_woerter))
                                                {
                                                        message(str_pad("insert $keyword",40).implode("-",array_keys(count_chars($keyword,1))));
                                                        $such_wort_ID=mysql_insert_id();
                                                }
                                                else
                                                {
                                                        $query_such_wort="select ID from such_woerter where wort = '".addslashes($keyword)."'";
                                                        $result_such_wort = mysql_query ($query_such_wort) or die (mysql_errno().": ".mysql_error()."<hr>".$query_such_wort."<hr>");
                                                        $such_wort=mysql_fetch_assoc($result_such_wort);
                                                        $such_wort_ID=$such_wort[ID];                                           
                                                }
                                                mysql_unbuffered_query("
                                                insert into
                                                        such_quelle_to_such_woerter
                                                values
                                                        (
                                                                ".$such_quelle[ID].",
                                                                ".$such_wort_ID.",
                                                                ".$such_index[ID].",
                                                                '".$such_index[Language]."'
                                                        )
                                                ");
                                        }
                                }
                        }
                }

                /* ######################################################################################################## */
                /* #    ungültige Einträge entfernen                                                                                                                                          */
                /* ######################################################################################################## */  

                $query="
                        select
                        distinct 
                                such_quelle.quelle_tab,
                                such_quelle_to_such_woerter.such_quelle_ID,
                                such_quelle_to_such_woerter.quelle_ID,
                                such_quelle_to_such_woerter.quelle_language
                        from
                                such_quelle,
                                such_quelle_to_such_woerter     
                        where 
                                such_quelle.ID = such_quelle_to_such_woerter.such_quelle_ID
                ";
                $result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");

                while($zeile=mysql_fetch_assoc($result))
                {
                        switch ($zeile[quelle_tab])
                        {
                                case "directory":
                                                $buffer=rootDir($zeile[quelle_ID],$zeile[quelle_language]);
                                                if (($buffer[Father] == -1) && ($buffer[status] == 0))
                                                {$zeile[Status]=0;}     else {$zeile[Status]=1;}
                                        break;
                                case "artikel":
                                                $zeile[Status]=artikelStatus($zeile[quelle_ID],$zeile[quelle_language]);
                                        break;
                                default:
                                        $zeile[Status]=0;
                                        break;
                        }

                        if ($zeile[Status] == 1)
                        {
                                $query=
                                "delete from
                                                such_quelle_to_such_woerter
                                        where
                                                such_quelle_ID = $zeile[such_quelle_ID]
                                        and quelle_ID = $zeile[quelle_ID]
                                        and quelle_language = '$zeile[quelle_language]'";
                                $zeile[query] = $query;
                                mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
                        }
                }
        }

                /* ######################################################################################################## */
                /* #    Serviveroutinen allgemein                                                                                                                                                       */
                /* ######################################################################################################## */  

                function getKeys($target)
                {
                        $buffer=array();
                        $query="show keys from $target";
                        $result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
                        while($zeile=mysql_fetch_assoc($result))
                        {
                                if ($zeile[Key_name] == "PRIMARY")
                                {
                                        $buffer[]=$zeile[Column_name];
                                }
                        }
                        return $buffer;
                }


                /* ######################################################################################################## */
                /* #    Serviveroutinen die für den check benötigt werden                                                                                                     */
                /* ######################################################################################################## */  

                function rootDir($ID,$language)
                {
                        $query="select * from directory where ID=$ID and language='$language'";
                        $result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
                        $zeile=mysql_fetch_assoc($result);
                
                        if 
                        (
                                ($zeile[Father] > 0)
                                and
                                ($zeile[status] == 0)
                        )
                        {
                                $zeile=rootDir($zeile[Father],$language);
                        }

                        return $zeile;
                }
        
                function artikelStatus($ID,$language)
                {
                        $query="select * from artikel where ID=$ID and language='$language'";
                        $result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
                        $zeile=mysql_fetch_assoc($result);
                
                        if
                        (
                                ($zeile[status] == 0)
                                &&
                                ($zeile[Father] > -2)
                        )
                        {// Artikel selbst ist OK, Pfad überprüfen
                                $buffer=rootDir($zeile[Father],$zeile[Language]);
                                if
                                (
                                        ($buffer[Father] == -1)
                                        &&
                                        ($buffer[status] == 0)
                                )
                                {// Artikel OK, Pfad OK
                                        return 0;
                                }
                                else
                                {// Artikel OK, Pfad nicht OK
                                        return 1;
                                }
                        }
                        else
                        {       // Artikel ist nicht OK
                                return 1;
                        }
                }

?>