Blame | Letzte Änderung | Log anzeigen | RSS feed
<?//if ($_SERVER["SERVER_ADDR"] != "127.0.0.1") { exit; }// forget about any script timeoutsset_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ählenmessage("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 intosuch_quelle_to_such_woertervalues(".$such_quelle[ID].",".$such_wort_ID.",".$such_index[ID].",'".$such_index[Language]."')");}}}}/* ######################################################################################################## *//* # ungültige Einträge entfernen *//* ######################################################################################################## */$query="selectdistinctsuch_quelle.quelle_tab,such_quelle_to_such_woerter.such_quelle_ID,such_quelle_to_such_woerter.quelle_ID,such_quelle_to_such_woerter.quelle_languagefromsuch_quelle,such_quelle_to_such_woerterwheresuch_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 fromsuch_quelle_to_such_woerterwheresuch_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 OKreturn 0;}else{// Artikel OK, Pfad nicht OKreturn 1;}}else{ // Artikel ist nicht OKreturn 1;}}?>