Beitrag von Thomas H. (180 Beiträge) am Freitag, 19.März.2004, 23:50.
Noch ein Sortier Problem
Hallo,
ich habe ebenfalls ein Sortierungsproblem, allerdings gebe ich meine Ergebnisse per Loop aus:
Ich habe 2 Felder: 1 Textfeld ( NLine) und 1 Zahl Feld (Lfd).
sort=-NLine,Lfd
Es soll also erst nach dem NLine Textfeld sortieren ( ungekehrt ) und dann nach dem Lfd Zahlenfeld.
Nach dem NLine Feld wird sortiert, aber die Lfd wird komplett ignoriert. Wenn ich die Doku richtig gelesen habe, dann müssen doch die Felder mit Komma getrennt werden, oder?
Gruß
Thomas
Antworten
Beitrag von Thomas H. (180 Beiträge) am Samstag, 20.März.2004, 08:50.
Nachtrag
Hatte noch vergessen zu erwähnen:
Die Sortierung in der DB ist wie folgt eingestellt:
NLine ( Feldtyp Text / Sortierung Text )
Lfd ( Feldtyp Zahl / Sortierng Zahl )
Antworten
Beitrag von Thomas H. (180 Beiträge) am Samstag, 20.März.2004, 22:07.
Nachtrag 2
Antworten
Beitrag von hempelr (1976 Beiträge) am Sonntag, 21.März.2004, 09:25.
Re: Nachtrag 2
Hallo, Thomas,
also das kurze Code-Schnipsel von oben macht folgendes:
1. Zeile - loop....
durchläuft die Datenbank und holt einen Datensatz nach dem anderen, alles was bis zum </loop> steht wird für jeden Datensatz gemacht
2. Zeile get
hier wird in jedem Schleifendurchlauf von loop eine Abfrage auf die zweite Datenbank gemacht und zwar mit der Bedingung, dass ein Feldwert aus dem Feld mit Name Verbindungsfeld in dbname2 genau den gleichen Inhalt hat wie im aktuell geholten Datensatz das Feld mit Name Verbindung aus dbname1.
Dieser Codeschnipsel stellt eine 1:1 Beziehung von Verbindung aus DB1 zu Verbindungsfeld aus DB2 dar (kann auch eine 1:n Beziehung werden, wenn man dann im get-Zweig noch while get_next einbaut) - es wird also eine einfache Relation hergestellt.
Da kannst du dann alles beliebige ausgeben mittels out = bzw. out<<EOF, oder aber du schreibst es "kumulativ" in eine Variable und gibst diese dann später irgendwann aus (kumulativ heisst verkettend, in etwa so: $var .= "Irgendwas aus dem Datensatz";)
Entscheidend ist für deinen Fall doch sicher nicht die Relation, wenn ichs richtig verstehe, sondern du willst einfach nur Inhalte aus 2 Datenbanken ausgeben oder?
Wenn mit loop, dann wäre es sinnvoll, dass die Felder in beiden DBs unterschiedliche Namen haben und dann brauchts nur noch die Ausgaben entsprechend zu basteln, ggf. muss da was mit den localparams gesetzt werden, ich find aber leider nicht mehr die Anleitung zu diesem Parameter (weiss auch nich genau, ob der unter loop überhaupt erlaubt ist...) Da wären einfach nur zwei loop-Schleifen notwendig, natürlich schon mit Angabe des Parameters db, damit jeweils die richtige Datenbank abgefragt wird
HtH
Ruben
Antworten
Beitrag von Thomas H. (180 Beiträge) am Sonntag, 21.März.2004, 10:32.
Re: Nachtrag 2
Hallo Ruben,
die Relation an sich wäre nicht so wichtig, das ist richtig. Im Prinzip will ich wirklich nur die Inhalte von 2 DB´s auf 1 Template bringen und zwar in getrennten Bereichen. Eigentlich ja eine sinple Sache, aber wohl doch nicht so schnell zu realisieren.
Das Problem ist wohl schon öfters im Forum aufgetaucht, aber so die richtige Lösung, außer dem o.g. Schript habe ich bis jetzt noch nicht gefunden.
Man müßte vermeiden, daß im 2.Loop verhindet wird, daß Felder aus dem 1.Loop abgefragt werden.
Gruß
Thomas
Antworten
Beitrag von Thomas H. (180 Beiträge) am Sonntag, 21.März.2004, 10:54.
Alternativ Idee
Ich hatte ja eigentlich ursprünglich die Idee ( und das wäre mir sowieso lieber ) alles in 1 DB unterzubringen. Denn dann habe ich es säter auch einfacher mit der Volltextsuche.
Ich hatte das auch ausprobiert und 2 Loops nacheinander gelegt. Das hatte im Prinzip auch funktioniert, aber mit der Sortierung gabe es ein Problem denn es müßte im 2.Loop dann mindestens nach 2 Feldern nacheinander sortiert werden nämlich 1. nach Bericht und 2. nach -Datum, da die neusten Einträge natürlich immer oben stehen müssen.
Und da gab´s die Probleme, nach Bericht hat er sortiert aber die Reihenfolge war wild durcheinander, die DAtum sortierung wude komplett ignoriert. So hatte ich es sortieren lassen:
sort=NLine,-Datum
Wenn das funktionieren würde, könnte ich mir das mit der 2.DB doch warscheinlich sparen, oder?
Gruß
Thomas
Antworten