Puccini
Neues Mitglied
Hi!
Ich erstelle über ein dynamisches Formular Abfragen.
Diese Abfragen werden in einer php-Datei zusammengestellt und dann mittels mysql abgefragt und ausgewertet.
Klappt alles...
Nur jetzt hab ich das Problem das ich ja noch joins brauche.
dh:
Tabelle1 ist mit Tabelle2 über Tabelle1.Feld1=Tabelle2.Feld4
verbunden.
Soweit so gut.
Der User kann bei mir bei der erstellung der abfrage folgendes auswählen:
Tabelle,Feld in dieser Tabelle,Vergleichsoperator,Wert
Man kann so selbst entscheiden welche Felder einer Tabelle alles angezeigt werden sollen und welche werte diese beinhalten sollen.
Funktioniert wunderbar.
Doch wenn jetzt nicht nur 1 Tabelle ausgewählt wurde, kommt es ja zu komplikatinene, da so millionen von datensätzen erzeugt werden ohnen einen join.
also:
Wenn der User so seine Abfrage gestalltet:
(Feld 4 hat keinen wert, da es nur m it ausgegeben werden soll)
So gibt es also 2 Tabellen, und wenn in jeder 100 Datensätze stehen, werden somit 100*100 datensätze erzeugt!
Dies ist jedoch nicht erwünscht, da ich weis, das tabelle1 mit tabelle2 verknüpfbar ist!
Kurz und gut:
ich brauche irgend einen allgorithmus, mittels dem ich mir die joins gestallten kann.
Bisher habe ich gedacht ich maches so:
In einer Tabelle "verweise" steht
Tabelle von,Feld von,Tabelle nach,Feld nach
somit ist festgehalten welche tabellen sich wie verknüpfen lassen.
Also brauch ich nur noch einen PHP Code der mir dann folgendes erzeugen würde:
Select * From
tabelle1 inner join(tabelle2 inner join tabelle3 on tabelle2.feld2=tabelle3.feld5) on tabelle1.feld1=tabelle2.feld4
.....
schwer zu beschreiben was ich will XD
also jenachdem wieviele unterschiedliche tabellen in der erzeugten abfrage auftauchen müssen auch die joins verschachtelt werden........
ich hab schon an eine rekursive funktion gedacht, die mir dann aus der tabelle ausliest was ich brauche.
doch leider find ich keinen ansatz :<
kennt wer dazu eine lösung?? :<
Ich erstelle über ein dynamisches Formular Abfragen.
Diese Abfragen werden in einer php-Datei zusammengestellt und dann mittels mysql abgefragt und ausgewertet.
Klappt alles...
Nur jetzt hab ich das Problem das ich ja noch joins brauche.
dh:
Tabelle1 ist mit Tabelle2 über Tabelle1.Feld1=Tabelle2.Feld4
verbunden.
Soweit so gut.
Der User kann bei mir bei der erstellung der abfrage folgendes auswählen:
Tabelle,Feld in dieser Tabelle,Vergleichsoperator,Wert
Man kann so selbst entscheiden welche Felder einer Tabelle alles angezeigt werden sollen und welche werte diese beinhalten sollen.
Funktioniert wunderbar.
Doch wenn jetzt nicht nur 1 Tabelle ausgewählt wurde, kommt es ja zu komplikatinene, da so millionen von datensätzen erzeugt werden ohnen einen join.
also:
Wenn der User so seine Abfrage gestalltet:
Code:
Tabelle1 Tabelle1 Tabelle2
Feld1 Feld4 Feld1
= >
1 5
So gibt es also 2 Tabellen, und wenn in jeder 100 Datensätze stehen, werden somit 100*100 datensätze erzeugt!
Dies ist jedoch nicht erwünscht, da ich weis, das tabelle1 mit tabelle2 verknüpfbar ist!
Kurz und gut:
ich brauche irgend einen allgorithmus, mittels dem ich mir die joins gestallten kann.
Bisher habe ich gedacht ich maches so:
In einer Tabelle "verweise" steht
Tabelle von,Feld von,Tabelle nach,Feld nach
somit ist festgehalten welche tabellen sich wie verknüpfen lassen.
Also brauch ich nur noch einen PHP Code der mir dann folgendes erzeugen würde:
Select * From
tabelle1 inner join(tabelle2 inner join tabelle3 on tabelle2.feld2=tabelle3.feld5) on tabelle1.feld1=tabelle2.feld4
.....
schwer zu beschreiben was ich will XD
also jenachdem wieviele unterschiedliche tabellen in der erzeugten abfrage auftauchen müssen auch die joins verschachtelt werden........
ich hab schon an eine rekursive funktion gedacht, die mir dann aus der tabelle ausliest was ich brauche.
doch leider find ich keinen ansatz :<
kennt wer dazu eine lösung?? :<