 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
24.08.2003, 13:48
|
#1
|
|
TP-Insider
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
|
mySQL-Tabelle umsortieren mit PHP Script
Hi,
ich habe da ein Problemchen, das zunehmend komplexer wird.
Also, ich habe eine mySQL-Tabelle, aus der eine Navigation zusammengebaut wird. Per Admin-Interface soll man neue Navigationspunktehinzufügen können. Man kann dann auch entweder auf eine statische Seite linken, oder auf eine DB-Tabelle verweisen, aus der dann der Content geladen wird.
Zusätzlich soll man die Einzelnen Menüpunkte inklusive der Unterpunkte in der Reihenfolge verschieben können.
Meine mySQL-Tabelle sieht so aus:
id | topid | entryid | name | link | tabelle | cont_id
Die "id" ist autoincrementiert.
"topid" ist eine fortlaufende Nummerierung, nach der die Navigationstablle aufgebaut wird (diese Zeile dient zur Sortierung).
Die "entryid" kennzeichnet durch den Wert "0", daß es sich bei dem Menüpunkt um eine Kategorie (Hauptpunkt) handelt. Wenn die "entryid" größer als "0" ist, handelt es sich um einen Unterpunkt zu einer Kategorie. Zu welcher Kategorie der Unterpunkt gejhört, sieht man an der Zahl im Feld "entryid".
Beispiel:
Eine Kategorie hat die "topid" 1 und die "entryid" 0
Es gibt hierzu nun 2 Unterpunkte.
Der Erste hat die "topid" 2 und die "entryid" 1 (weil er zur Kategorie mit der "topid" 1 gehört).
Der Zweite hat die "topid" 3 und die "entryid" 1 (weil er zur Kategorie mit der "topid" 1 gehört).
Dann kommte wieder eine Kategorie mit der "topid" 4 und der "entryid" 0. Darunter dann ein paar Unterpunkte mit der "entryid" 4 und so weiter....
Ich habe nun ein PHP-Script, dass die Navigationstabelle laut dieser Gesetzmäßigkeit aufbaut, und in jeder Seite includiert wird. Das klappt.
Im Admin-Bereich soll es nun möglich sein, die einzelnen Kategorien, samt Unterpunkten "nach oben" oder "nach unten" zu verschieben. Und genau hier scheitert die Sache.
Das Sortieren (vertauschen) von zwei Kategorien (entryid = 0) klappt super. Nur die dazugehörigen Unterpunkte wieder zu der neuen topid zuzuordnen klappt einfach nicht!
Bisher habe ich dafür ca. 90 Zeilen Code geschrieben (nur fürs "nach unten"-Sortieren...)
Hat vielleicht irgendjemand schonmal was ähnliches geschrieben? Kennt jemand ein Script, das sowas ähnliches macht?
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
|
|
|
24.08.2003, 14:20
|
#2
|
|
Registered User
Registriert seit: Feb 2002
|
.
Geändert von Radoo.de (18.10.2003 um 20:18 Uhr).
|
|
|
24.08.2003, 21:10
|
#3
|
|
TP-Insider
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
|
Ok!
Ich hab's dann doch endlich geschafft!
Ich hab einfach die Tabelleneinträge nochmal geändert und die Sortierfunktion erneut geschrieben. Nun hat sie 70 Zeilen Code und funzt. Mein Script, dass die Navi zusammenbaut mußte ich natürlich auch etwas anpassen.
Ich verwende nun die topid zur Grobsortierung und zur Zuordnung der zusammengehörigen Kategorien und
Unterpunkte. Alles was z. B. die topid "1" hat, gehört zusammen u.s.w.
Die Unterpunkte werden dann nach der "entryid" sortiert.
Die entryid "0" kennzeichnet eine Kategorie, eine entryid != "0" kennzeichnet einen Unterpunkt.
Falls es jemand interessiert, hier die Funktion zur Sortierung...
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
|
|
|
24.08.2003, 21:18
|
#4
|
|
TP-Insider
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
|
Und hier noch die Funktion, die aus der mysql-Tabelle die Navigation zusammenbaut, bisher nur für statische Links.
Und hier auch noch die Navi-Tabelle:
Code:
CREATE TABLE `navi` (
`id` int(10) unsigned NOT NULL auto_increment,
`topid` int(10) default NULL,
`entryid` int(10) default NULL,
`name` varchar(50) default NULL,
`link` varchar(100) default NULL,
`tabelle` varchar(50) default NULL,
`cont_id` int(10) default NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
in 'link' wird der relative Pfad zur statischen Seite eingetragen (z. B. ./index.php)
Später kann man mit 'tabelle' und 'cont_id' auf Tabellen verweisen, die Content enthalten. Die 'cont_id' zeigt dann auf die entsprechende Zeile der Content-Tabelle ('tabelle').
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:38 Uhr.
|
 |