Hallo zusamen,
Ich habe einen Ordnerbaum in der Tabelle "Ordnerbaum". Diese ist sehr einfach aufgebaut:
Der Ordner "Bilder" hat z.B. die id 4. In der gleichen Tabelle sind auch seine Kinder. Diese haben in der Spalte "parentId" alle die 4 vom Ordener "Bilder". Das heisst es kann beliebig viele Unterordner geben.
In den Ordnern kann es auf allen Stufen Bilder haben. Es gibt eine Spalte die "was" heisst. Ein enum() in welchem "bild" oder "ordner" steht.
Das habe ich und das funktioniert auch bestets.
Was ich nicht schaffe:
Es gibt ein Suche nach Bilder- Ordnernamen. Meine aktuelle Suche:
So kriege ich alle Bilder und Ordner.
Wenn ich das ganze mit php auslese, kann es ja gut sein, dass ein Ergebniss ein Ordner ist. Für diesen Fall habe ich mir eine Methode gemacht, die sich selbst immer wieder aufruf bis es keinen Unterordner mehr gibt
Mit dieser Methode können alle Bilder eines Ordners inkl. aller Unterordners ausgegeben werden.
Da ich das ganze mit paging machen möchte, geht das mit dieser Methode nicht.
Hat jemand eine Idee, wie man das ganze in eine SQL abrage steckt?
Hätte ich das, möchte ich versuchen, dass man ab einem beliebigen Unterordner suchen kann und es nur Bilder in diesem oder von Unterunterordner gefunden werden.
Ich haffe, dass nicht nur ich diese Frage verstehe



Ich habe einen Ordnerbaum in der Tabelle "Ordnerbaum". Diese ist sehr einfach aufgebaut:
Der Ordner "Bilder" hat z.B. die id 4. In der gleichen Tabelle sind auch seine Kinder. Diese haben in der Spalte "parentId" alle die 4 vom Ordener "Bilder". Das heisst es kann beliebig viele Unterordner geben.
In den Ordnern kann es auf allen Stufen Bilder haben. Es gibt eine Spalte die "was" heisst. Ein enum() in welchem "bild" oder "ordner" steht.
Das habe ich und das funktioniert auch bestets.
Was ich nicht schaffe:
Es gibt ein Suche nach Bilder- Ordnernamen. Meine aktuelle Suche:
Code:
SELECT id, name, was,
IF( name REGEXP '$search', 3, 0 ) AS NA,
FROM Ordnerbaum
WHERE
name REGEXP '$search'
ORDER BY NA DESC
LIMIT $page, 30;
Wenn ich das ganze mit php auslese, kann es ja gut sein, dass ein Ergebniss ein Ordner ist. Für diesen Fall habe ich mir eine Methode gemacht, die sich selbst immer wieder aufruf bis es keinen Unterordner mehr gibt
PHP:
private function getBilderInOrdner($ordnerId){
$sql = "SELECT id, name, was
FROM Ordnerbaum
WHERE parentId = '$ordnerId'";
$qry = $this->db->query($sql);
foreach ($qry->result() as $row){
if($row->was == 'bild'){
$this->Bilder[] = array(/*Bild Infos*/);
}else{
//Wenn es ein Ordner ist -> gehe in diesen
$this->getBilderInOrdner($row->id);
}
}
}
Da ich das ganze mit paging machen möchte, geht das mit dieser Methode nicht.
Hat jemand eine Idee, wie man das ganze in eine SQL abrage steckt?
Hätte ich das, möchte ich versuchen, dass man ab einem beliebigen Unterordner suchen kann und es nur Bilder in diesem oder von Unterunterordner gefunden werden.

Ich haffe, dass nicht nur ich diese Frage verstehe



