Beitrag von Konstantin (4 Beiträge) am Mittwoch, 4.Februar.2004, 20:55.
Relationen -> Felder und get
Hallo zusammen,
ich arbeite mit relationsfeldern. Das klappt auch alles soweit ganz gut solange man mit baseportal mitteln arbeitet.
Das Problem ist jetzt aber, sollte ich die Datenausgabe über get aufbauen komme ich an die Relationsdaten ausgehend von der main DB nicht dran.
Zum verstandniss:
Maindaten werden über get geholt
Dann sollen die relationsdaten aus der DetailDB über get geholt werden. Das geht aber nicht da das verknüpfte Feld scheinbar keine sortierung hat.
Ein Beispiel:
Main DB = Warengruppe
Detail DB = Artikel
Logisch das die Artikel mit einer Warengruppe verknüpft sind.
Das entsprechende Feld heisst Kategorie.
Ausgabe soll ca so aussehen
Warengruppe 1:
.....Artikel 1 in dieser Warengruppe
.....Artikel 2 in dieser Warengruppe
Warengruppe 2:
.....Artikel 1 in dieser Warengruppe
.....Artikel 2 in dieser Warengruppe
usw...
und so sieht der code ca aus:
get "Id==*", "Warengruppe";
while(get_next("Warengruppe")) {
out "<h1>$Gruppenbezeichnung<h1>";
# in $_id steht jetzt die ID des eben geholten DS von Warengruppe
# in der Artikel DB ist in dem Relkationsfeld Kategorie die Id der Warengr. gespeichert
get "Kategorie==$_id", "Artikel";
while(get_next("Artikel")) {
out "$Artikel<br>";
}
}
Meine Lösungsansätze:
Entweder alles über perl (Also selber ein und ausgaben Proggen)
Oder alle daten jeweils aus der detailDB holen und mit if filtern
Beides ist finde ich arbeitsaufwendig. Es wär doch schön wenn man das mit einem Get machen könnte.
Danke fürs mitdenken.
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 6.Februar.2004, 21:45.
Re: Relationen -> Felder und get
Versuch ich mich mal dran ;)
Mmh, also eigentlich sollte das mit "get" genauso funktionieren. Wenn Du
machst, dann hast Du z.b. in $Relationsfeld die Id von dem passenden Eintrag in "db2" drin und bekommst mit
get "Id==$Relationsfeld", "db2";
eben diesen Eintrag... So, jetzt zum konkreten Beispiel:
get "Id==*", "Warengruppe";
while(get_next("Warengruppe")) {
out "<h1>$Gruppenbezeichnung<h1>";
# FALSCH -> in $_id steht jetzt die ID des eben geholten DS von Warengruppe
# in der Artikel DB ist in dem Relkationsfeld Kategorie die Id der Warengr. gespeichert
get "Kategorie==$Relationsfeld", "Artikel";
while(get_next("Artikel")) {
out "$Artikel<br>";
}
}
Wie das "Relationsfeld" bei Dir heisst kann ich aus Deiner Beschreibung nich ersehen ("Artikel"?)
Antworten
Beitrag von Konstantin (4 Beiträge) am Montag, 9.Februar.2004, 11:15.
Re: Relationen -> Felder und get
Antworten
Beitrag von Konstantin (4 Beiträge) am Montag, 9.Februar.2004, 11:38.
Re: Relationen -> Felder Nachtrag
Habe da noch einen Gedanken (gerade geteste)
zum vertsändniss:
DB2
hat nur ein Feld namens Bezeichnung
Wenn ich aus der DB2 fogenden Hash aufbaue:
get "Id==*", "DB2";
while (get_next("DB2") {
$meinhash{$_id} = $Bezeichnung;
}
sieht mein Hash ja ca. so aus:
ID Bezeichnung
1 => Auto
2 => Schiff
3 => Rollschuhe
Soweit so Gut.
Jetzt hole ich mal alle Einträge aus DB1 und gebe diese aus. Das Relationsfeld hat z.B. den namen Fahrzeug
dann sieht mein ausgabe ca so aus:
Datum | Fahrzeug | KM
12.12. | 1 | 200
13.12. | 1 | 120
14.12. | 3 | 20
Ich muss also den vorher angelegten Hash benutzen um die Fahrzeuge richtig anzuzeigen.
Fahrzeuge würde dann so ausgegeben werden:
out $Datum $meinhash{$Fahrzeug} $KM
und würde richtig zu den folgenden ausgabe führen:
Datum | Fahrzeug | KM
12.12. | Auto | 200
13.12. | Auto | 120
14.12. | Fahrad | 20
Deshalb bin ich davon ausgegangen das im Feld Fahrzeug (welches ja das Relationsfeld auf DB2 Liste ist) die ID des Datensatzes aus DB2 steht.
Wie würde denn eine abfrage nach allen Autos aussehen?
???
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 9.Februar.2004, 17:10.
Re: Relationen -> Felder und get
Ok, jetzt hab ich Dich verstanden ;-)
Ja, hast recht, hab gerade nachgeschaut, das Relationsfeld ist selbst garnich sortiert - allerdings spricht eigentlich nichts dagegen, das möglich zu machen... Find das sinnvoll & is auch nich weiter schwierig, werd das bald einbauen ;-)
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 9.Februar.2004, 17:30.
Re: Relationen -> Felder und get - Relationsfeld jetzt sortierbar
Is drin... ;-)
Erstmal nur beim kostenlosen baseportal.de, würd mich freuen, wenn Du das da mal testen könntest und wenn alles ok ist, dann spiel ichs auf die Providerversionen rüber...
Antworten
Beitrag von Konstantin (4 Beiträge) am Montag, 9.Februar.2004, 21:26.
Re: Relationen -> Felder und get Ja es geht
Danke
es funktioniert.
Habe es eben getestet.
Super macht genau das was man erwartet.
Alles OK für den Umbau bei den Providern.
Gruß
Konstantin
Antworten