Subversion Repositories personal-webbase

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. <?php
  2.  
  3. if (!defined('WBLEGAL')) die('Kann nicht ohne Personal WebBase ausgef&uuml;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. ?>