Ahoi leuts!
folgendes Problem:
ich habe eine Datenbank und da möchte ich die Datenbank optimieren, und zwar nicht belegte positionsnummern löschen und alle darauffolgenden zurückzählen.
folgender Quelltext:
function db_opt($table,$value_to_optimize){
$val = $value_to_optimize;
$ok = false;
$i = 0;
while(!$ok){
$sql = "SELECT ".$val." FROM ".$table;
$facts = $this->sqlarray($sql);
$max = count($facts);
echo "$facts -> $max";
if(($facts) && ($i<$max)){
if(($facts[$i]+1) < ($facts[$i+1])){
$interval = $facts[$val][$i+1] - $facts[$i] -1;
$sql = "UPDATE ".$table." SET ".$val." = ".$val;
$sql.= " - ".$interval." where ".$val." > ".$facts[$i];
$this->sqlquery($sql);
}
$i++;
}else{
$ok = true;
}
}
}
folgende Ausgabe:
Array -> 2
Warning: Undefined offset: 1 in E:\Webserver\include\navi_class.inc on line 113
Array -> 2
Warning: Undefined offset: 1 in E:\Webserver\include\navi_class.inc on line 113
Warning: Undefined offset: 2 in E:\Webserver\include\navi_class.inc on line 113
Array -> 2
Problem: also egal wie ich auf das Array zugreife, es kommen immer diese Warnings.. aber inhalt hat es ja (2) - wo liegt mein Fehler?