Hallo.
Ich habe ein Nested Set mit Kategorien in einer Tabelle im Schema "mainproject":
categoryid, lft, rgt, level, categoryname
1,1,8,1,"Oberkategorie"
2,2,3,2,"OK Unterkategorie 1"
3,4,7,2,"Unterkategorie 2"
4,5,6,3,"OK Unterkategorie 2.1"
Ich möchte nun das man nach Kategoriensuchen kann und diese automatisch vorgeschlagen werden sobald ein Buchstabe hinzukommt. So das klappt auch alles Spitze nur meine SQL abfrage macht mir später Probleme.
So angenommen ich gebe "ok" ein. Dann sorgt diese Abfrage
SELECT p.categoryname, p.categoryid AS ownid, o.categoryid AS oldid
FROM mainproject.board_category n, mainproject.board_category p
LEFT JOIN mainproject.board_category AS o ON o.categoryname ILIKE '".db::escape($tag)."%'
WHERE n.lft
BETWEEN p.lft AND p.rgt AND n.categoryid=o.categoryid
ORDER BY oldid, p.lft
LIMIT 20
1,1,8,1,"Oberkategorie"
2,2,3,2,"OK Unterkategorie 1"
3,4,7,2,"Unterkategorie 2"
4,5,6,3,"OK Unterkategorie 2.1"
dafür, das ich dieses Ergebnis zurückbekomme:
array(4){
[0]{
categoryname="Oberkategorie", ownid = 1, oldid=3
}
[1]{
categoryname="Unterkategorie 2", ownid = 3, oldid=3
}
[2]{
categoryname="OK Unterkategorie 2.1", ownid = 4, oldid=3
}
[3]{
categoryname="OK Unterkategorie 1", ownid = 2, oldid=2
}
}
Ich hätte die Ergebnissse gerne anders, Gebündelt nach "oldid".
So das es praktisch so aussieht:
array(2){
[0]array(3)(
[0]{
categoryname="Oberkategorie", ownid = 1, oldid=3
}
[1]{
categoryname="Unterkategorie 2", ownid = 3, oldid=3
}
[2]{
categoryname="OK Unterkategorie 2.1", ownid = 4, oldid=3
}
}
[1]array(1){
[0]{
categoryname="OK Unterkategorie 1", ownid = 2, oldid=2
}
}
Wie ist das zu erreichen?
Gruß, DB