Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | daniel-mar | 1 | <?php |
2 | |||
3 | if (!defined('WBLEGAL')) die('Kann nicht ohne Personal WebBase ausgeführt werden.'); |
||
4 | |||
5 | // Als erstes rekursiv die ungültigen Bezüge in der Ordnerstruktur löschen |
||
6 | |||
7 | $fortfahren = true; |
||
8 | while ($fortfahren) |
||
9 | { |
||
10 | $my_str = "'0', "; |
||
11 | $res = db_query("SELECT `id` FROM `".$WBConfig->getMySQLPrefix()."folders`"); |
||
12 | while ($row = db_fetch($res)) |
||
13 | { |
||
14 | $my_str .= "'".$row['id']."', "; |
||
15 | } |
||
16 | $my_str = substr($my_str, 0, strlen($my_str)-2); |
||
17 | |||
18 | db_query("DELETE FROM `".$WBConfig->getMySQLPrefix()."folders` WHERE `folder_cnid` NOT IN ($my_str)"); |
||
19 | |||
20 | if (db_affected_rows() > 0) |
||
21 | { |
||
22 | db_query("OPTIMIZE TABLE `".$WBConfig->getMySQLPrefix()."folders`"); |
||
23 | } |
||
24 | else |
||
25 | { |
||
26 | $fortfahren = false; |
||
27 | } |
||
28 | } |
||
29 | |||
30 | // Nun alle sonstigen Datensätze löschen, die auf keinen gültigen Ordner mehr zeigen |
||
31 | |||
32 | foreach ($tables_modules as $m1 => $m2) |
||
33 | { |
||
34 | if (isset($tables_modules[$m1]['folder_cnid'])) |
||
35 | { |
||
36 | // Prüfung auf $my_str = '' nicht nötig, da '0' immer als Element existiert |
||
37 | |||
38 | db_query("DELETE FROM `$m1` WHERE `folder_cnid` NOT IN ($my_str)"); |
||
39 | if (db_affected_rows() > 0) |
||
40 | { |
||
41 | db_query("OPTIMIZE TABLE `$m1`"); |
||
42 | } |
||
43 | } |
||
44 | } |
||
45 | |||
46 | ?> |