Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
3 lars 1
<?
2
	//if ($_SERVER["SERVER_ADDR"] != "127.0.0.1") { exit; }
3
 
4
	// forget about any script timeouts
5
	set_time_limit(0);
6
 
7
	mysql_connect("localhost","mediaran.de","m-dr-n");
8
 
9
	function message($msg)
10
	{
11
	    //echo $msg."\n"
12
	}
13
 
14
	$Datenbanken=array
15
	(
16
	    "mediaran_de"
17
	);
18
 
19
	foreach($Datenbanken as $DB)
20
	{
21
		// Datenbank anwählen
22
		message("use $DB");
23
		mysql_query ("use $DB") or die (mysql_errno().": ".mysql_error());
24
 
25
		/* ######################################################################################################## */
26
		/* #	Tabellen füllen                                                                                   # */
27
		/* ######################################################################################################## */
28
 
29
		foreach(array("such_woerter","such_quelle_to_such_woerter",) as $tab)
30
		{
31
		message("delete from $tab");
32
			mysql_unbuffered_query("delete from $tab");
33
		}
34
		mysql_unbuffered_query("ALTER TABLE such_woerter AUTO_INCREMENT=0");
35
 
36
		$query_such_quelle="select * from such_quelle";
37
		$result_such_quelle = mysql_query ($query_such_quelle) or die (mysql_errno().": ".mysql_error()."<hr>".$query_such_quelle."<hr>");
38
		message($query_such_quelle);
39
 
40
		while($such_quelle=mysql_fetch_assoc($result_such_quelle))
41
		{
42
			$query_such_index="select ".implode(", ",getKeys($DB.".".$such_quelle[quelle_tab])).",".$such_quelle[quelle_feldname]." from ".$such_quelle[quelle_tab]." ".$such_quelle[quelle_bedingung];
43
			message($query_such_index);
44
			$result_such_index = mysql_query ($query_such_index) or die (mysql_errno().": ".mysql_error()."<hr>".$query_such_index."<hr>");
45
			while($such_index=mysql_fetch_assoc($result_such_index))
46
			{
47
				foreach(preg_split ('/\s/', $such_index[$such_quelle[quelle_feldname]]) as $raw_keyword)
48
				{
49
					//$keyword=trim(strip_tags($raw_keyword));
50
 
51
					$keyword
52
					=
53
					preg_replace
54
					(
55
						array
56
						(
57
							"/[^A-Za-zÄÖÜäöüß0-9,]/"
58
						),
59
						array
60
						(
61
							""
62
						),
63
						$raw_keyword,
64
						-1
65
					);
66
 
67
					if (strlen($keyword) > 1)
68
					{
69
						$query_such_woerter="insert into such_woerter (wort) values ('$keyword')";
70
						if($result_such_woerter = mysql_query ($query_such_woerter))
71
						{
72
							message(str_pad("insert $keyword",40).implode("-",array_keys(count_chars($keyword,1))));
73
							$such_wort_ID=mysql_insert_id();
74
						}
75
						else
76
						{
77
							$query_such_wort="select ID from such_woerter where wort = '".addslashes($keyword)."'";
78
							$result_such_wort = mysql_query ($query_such_wort) or die (mysql_errno().": ".mysql_error()."<hr>".$query_such_wort."<hr>");
79
							$such_wort=mysql_fetch_assoc($result_such_wort);
80
							$such_wort_ID=$such_wort[ID];
81
						}
82
						mysql_unbuffered_query("
83
						insert into
84
							such_quelle_to_such_woerter
85
						values
86
							(
87
								".$such_quelle[ID].",
88
								".$such_wort_ID.",
89
								".$such_index[ID].",
90
								'".$such_index[Language]."'
91
							)
92
						");
93
					}
94
				}
95
			}
96
		}
97
 
98
		/* ######################################################################################################## */
99
		/* #	ungültige Einträge entfernen 																		*/
100
		/* ######################################################################################################## */
101
 
102
		$query="
103
			select
104
			distinct
105
				such_quelle.quelle_tab,
106
				such_quelle_to_such_woerter.such_quelle_ID,
107
				such_quelle_to_such_woerter.quelle_ID,
108
				such_quelle_to_such_woerter.quelle_language
109
			from
110
				such_quelle,
111
				such_quelle_to_such_woerter
112
			where
113
				such_quelle.ID = such_quelle_to_such_woerter.such_quelle_ID
114
		";
115
		$result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
116
 
117
		while($zeile=mysql_fetch_assoc($result))
118
		{
119
			switch ($zeile[quelle_tab])
120
			{
121
				case "directory":
122
						$buffer=rootDir($zeile[quelle_ID],$zeile[quelle_language]);
123
						if (($buffer[Father] == -1) && ($buffer[status] == 0))
124
						{$zeile[Status]=0;}	else {$zeile[Status]=1;}
125
					break;
126
				case "artikel":
127
						$zeile[Status]=artikelStatus($zeile[quelle_ID],$zeile[quelle_language]);
128
					break;
129
				default:
130
					$zeile[Status]=0;
131
					break;
132
			}
133
 
134
			if ($zeile[Status] == 1)
135
			{
136
				$query=
137
				"delete from
138
						such_quelle_to_such_woerter
139
					where
140
						such_quelle_ID = $zeile[such_quelle_ID]
141
					and quelle_ID = $zeile[quelle_ID]
142
					and quelle_language = '$zeile[quelle_language]'";
143
				$zeile[query] = $query;
144
				mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
145
			}
146
		}
147
	}
148
 
149
		/* ######################################################################################################## */
150
		/* #	Serviveroutinen allgemein																			*/
151
		/* ######################################################################################################## */
152
 
153
		function getKeys($target)
154
		{
155
			$buffer=array();
156
			$query="show keys from $target";
157
			$result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
158
			while($zeile=mysql_fetch_assoc($result))
159
			{
160
				if ($zeile[Key_name] == "PRIMARY")
161
				{
162
					$buffer[]=$zeile[Column_name];
163
				}
164
			}
165
			return $buffer;
166
		}
167
 
168
 
169
		/* ######################################################################################################## */
170
		/* #	Serviveroutinen die für den check benötigt werden													*/
171
		/* ######################################################################################################## */
172
 
173
		function rootDir($ID,$language)
174
		{
175
			$query="select * from directory where ID=$ID and language='$language'";
176
			$result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
177
			$zeile=mysql_fetch_assoc($result);
178
 
179
			if
180
			(
181
				($zeile[Father] > 0)
182
				and
183
				($zeile[status] == 0)
184
			)
185
			{
186
				$zeile=rootDir($zeile[Father],$language);
187
			}
188
 
189
			return $zeile;
190
		}
191
 
192
		function artikelStatus($ID,$language)
193
		{
194
			$query="select * from artikel where ID=$ID and language='$language'";
195
			$result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
196
			$zeile=mysql_fetch_assoc($result);
197
 
198
			if
199
			(
200
				($zeile[status] == 0)
201
				&&
202
				($zeile[Father] > -2)
203
			)
204
			{// Artikel selbst ist OK, Pfad überprüfen
205
				$buffer=rootDir($zeile[Father],$zeile[Language]);
206
				if
207
				(
208
					($buffer[Father] == -1)
209
					&&
210
					($buffer[status] == 0)
211
				)
212
				{// Artikel OK, Pfad OK
213
					return 0;
214
				}
215
				else
216
				{// Artikel OK, Pfad nicht OK
217
					return 1;
218
				}
219
			}
220
			else
221
			{	// Artikel ist nicht OK
222
				return 1;
223
			}
224
		}
225
 
226
?>