![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.213
|
Ich habe eine Baumstruktur. Dafür habe ich die drei relevanten Spalten - jeweils vom Typ int(11 `_id`, `_num`, `_parent` _id ist auto_increment. Einfach nur eine ID halt... _parent zeigt an, welche _id parent ist. Wenn der Eintrag nicht untergeordnet ist, dann ist _parent = 0 mit _num sortiere ich die Reihenfolge, sofern mehrere Einträge den gleichen parent haben. Soweit klar? Diese Struktur ist fest - die wird bereits verwendet! Nun möchte ich jedoch eine Liste aller Einträge haben, sortiert nach der richtigen Reihenfolge. Richtig definiere ich hierbei wie folgt: Als erstes kommt der Eintrag, der _parent = 0 hat und den niedrigsten Wert in der Spalte _num hat. Sollten Einträge die id des eben genannten Eintrages als _parent haben, so sollen nun diese folgen (sortiert nach _num) Wenn keine Einträge mehr nach dem genannten Kriterium folgen, dann soll mit dem (nach _num sortierten) nächsten Eintrag mit _parent = 0 weiter gemacht werden, wo wiederum dann die 'Kinder' folgen. Soweit die Theorie, ich weiß aber überhaupt nicht, wie ich das ORDER BY gestalten soll In der Hoffnung, das ausreichend verständlich dargestellt zu haben freue ich mich auf Hilfe!
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #2 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
|
Ich habe natürlich keine Ahnung *g*, aber ich denke, dass das nicht so ohne Weiteres in einem Query geht. Vielleicht mal nach GROUP BY und damit verbundenem ORDER BY schauen? Nur so als Einstieg, vielleicht hat ja wer mehr Ahnung Grüße Ben. |
| | |
| | Nach oben #3 |
| . Registriert seit: 21.09.2005 Ort: CH-JP
Beiträge: 47
| PHP-Code: Wenn nicht, könntest du dann das gewünschte ausgabeprozedere etwas praäzisieren? gruss _root edit: Ach habe irgend wie das id prozedere überlesen, update folgt. Geändert von _root (29.12.2005 um 00:02 Uhr). |
| | |
| | Nach oben #4 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
|
Hm, ich hab das so verstanden, dass er am Ende sowas haben will Code: parentID = 0 - num = 0 - num = 2 - num = 3 parentID = 1 - num = 2 - num = 3 ... |
| | |
| | Nach oben #5 | ||
| . Registriert seit: 21.09.2005 Ort: CH-JP
Beiträge: 47
| Zitat:
Zitat:
| ||
| | |
| | Nach oben #6 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.213
|
ok - sry, ich hatte befürchtet, dass ich das mal wieder zu umständlich ausgedrückt habe... also, als erstes Mal einen Überblick über die Datensätze: Code: SELECT
`_id`, `_num`, `_show`, `_parent`
FROM
`CMS_tutorial_content`
ORDER BY
`_id` ASC
Code: _id _num _parent 1 -99 0 2 3 0 3 5 0 4 2 0 5 1 4 6 1 4 7 3 4 8 1 2 9 2 2 10 10 0 11 2 10 12 5 2 13 6 2 15 7 2 16 9 2 17 10 2 18 11 2 19 4 2 20 8 2 21 13 2 22 14 2 23 3 2 24 1 10 26 15 2 27 16 2 28 17 2 29 17 2 für folgendes Ergebnis: Code: _id _num _parent 1 -99 0 4 2 0 5 1 4 6 1 4 7 3 4 2 3 0 8 1 2 9 2 2 23 3 2 19 4 2 12 5 2 13 6 2 15 7 2 20 8 2 16 9 2 17 10 2 18 11 2 21 13 2 22 14 2 26 15 2 27 16 2 28 17 2 29 17 2 3 5 0 10 10 0 24 1 10 11 2 10
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! Geändert von Jann Hendrik (29.12.2005 um 22:21 Uhr). |
| | |
| | Nach oben #8 | ||
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.213
| Zitat:
bei dem käme dann folgendes raus: Code: _id || _num || _parent 1 || -99 || 0 4 || 2 || 0 2 || 3 || 0 3 || 5 || 0 10 || 10 || 0 8 || 1 || 2 9 || 2 || 2 23 || 3 || 2 19 || 4 || 2 12 || 5 || 2 13 || 6 || 2 15 || 7 || 2 20 || 8 || 2 16 || 9 || 2 17 || 10 || 2 18 || 11 || 2 21 || 13 || 2 22 || 14 || 2 26 || 15 || 2 27 || 16 || 2 28 || 17 || 2 29 || 17 || 2 5 || 1 || 4 6 || 1 || 4 7 || 3 || 4 24 || 1 || 10 11 || 2 || 10 Zitat:
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! | ||
| | |
| | Nach oben #9 |
| . Registriert seit: 21.09.2005 Ort: CH-JP
Beiträge: 47
| ![]() Ich denke mal das Du ohne speziellen Komplizierten algorythmus wohl kaum zum Ziel kommen wirst. Stellen sich solche fragen würde ich meinen das beim Datenbank Design oder bei der Projekt realisation einfach geschlampt wurde?! So auf die schnelle kann man ja bei deiner Id sortierung keine gemeinsamkeiten gruppierungen oder anderes feststellen. Ich weiss nicht was du jetzt erwartest von uns!? |
| | |
| | Nach oben #10 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.213
|
Nun, es ist als kleine gimmick in einem CMS geplant gewesen. Ich kann das ja ohne weiteres in 2 Abfragen unterbringen, aber ich dachte, dass es ggf. möglich wäre, das in einem hinzubekommen.... Eine Erwartungshaltung habe ich nicht, aber ggf. hat jmd. ja ausreichend Ahnung, um mir zu sagen, wie es geht, bzw., dass es nicht geht... Wenn es einfach wäre, dann hätte ich das ja auch alleine gemacht
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #11 | |
| . Registriert seit: 21.09.2005 Ort: CH-JP
Beiträge: 47
| Zitat:
| |
| | |
| | Nach oben #12 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.213
|
ich habe da gerade noch nichts gebastelt, aber das ist ja nicht der Akt... einfach alle mit _parent = 0 abfragen und anschließend in einer while() abarbeiten. Dort dann für jedes Ergebniss aus der eben gewonnenen Liste wieder eine Abfrage machen SELECT * FROM tabellenname WHERE _parent = _id(von eben) Lange Liste kreieren - fertig. Ist halt ein wenig länger, aber wenn das nicht in einem querry geht, dann ist ein Weg.... Verstehst, wie ich das meine?
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #13 | |
| . Registriert seit: 21.09.2005 Ort: CH-JP
Beiträge: 47
| Zitat:
Du holst dir alle mit _parent = 0 benütz du jetzt weiter den Wert _parent oder den Wert _id? Sprich: PHP-Code: Code: _id _num _parent 1 -99 0 4 2 0 5 1 4 6 1 4 7 3 4 2 3 0 8 1 2 9 2 2 23 3 2 19 4 2 12 5 2 13 6 2 15 7 2 20 8 2 16 9 2 17 10 2 18 11 2 21 13 2 22 14 2 26 15 2 27 16 2 28 17 2 29 17 2 3 5 0 10 10 0 24 1 10 11 2 10 Das ist mir noch ein Rätsel: Code: 3 5 0 edit: fixed Geändert von _root (31.12.2005 um 11:59 Uhr). | |
| | |
| | Nach oben #15 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.213
|
so - ich habe das mal mit Ausgabe (echo) dargestellt. PHP-Code:
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| indireckte Frage zu Template system | kampfgnom | PHP-Programmierung | 4 | 04.06.2007 04:12 |
| ORDER und GROUP BY | Basti | Datenbanken | 5 | 13.04.2007 11:24 |
| [MySQL] ORDER BY - 0 am ende | thrawn | Datenbanken | 5 | 24.01.2007 14:14 |
| Order BY im Tabellenheader | jennifer | PHP-Programmierung | 19 | 11.01.2007 14:15 |
| Frage zu Aufklapp-Menü mit CSS | Hobbyuser | HTML, XML und CSS | 8 | 12.08.2006 18:41 |