Subversion-Projekte lars-tiefland.content-management

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

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