NestedSet Reparieren

Dieser Code repariert ein kaputtes NestedSet anhand der Parent ID

<?
// DB Connection
@mysql_connect($dbHost, $dbUser, $dbPass)
  or die("Abbruch: Verbindung zu '$dbHost' konnte nicht hergestellt werden.");
@mysql_select_db($dbName)
  or die("Abbruch: Datenbank '$dbName konnte nicht selektiert werden.<br><br>MySQL sagt: ".mysql_error());
 
function repairNestedSet($parent)
{
  global $counter;
 
  $sql = "SELECT PID FROM tblPage WHERE PParentID = $parent";
  $data = mysql_query($sql) or die ("<B>mySQL error:</B> " . mysql_error() . "<BR><BR><B>SQL-Query:</B> [$sql]");
 
  while (list($child) = mysql_fetch_row($data))
  {
    $counter++;
    mysql_query("UPDATE tblPage SET PLeft = $counter WHERE PID = $child");
    repairNestedSet($child);
    $counter++;
    mysql_query("UPDATE tblPage SET PRight = $counter WHERE PID = $child");
   }
}
repairNestedSet(0);
mysql_close();
?>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.