Doccos12
Grünschnabel
Guten Morgen,
Bis jetzt konnte ich großteils alles mit der Suchfunktion lösen jedoch häng ich jetzt bei einem Problem wo ich nicht weiterkomme
Ich will eine Suchfunktion programmieren wo Werte in mehreren Input/Checkboxen stehen, diese sich jedoch verändern können
Alle Form Elemente sind in einer Haupt und Untergruppe unterteilt
zb.:
Form 1: typ: input, HGroup: 1 SGroup:1
Form 1: typ: input, HGroup: 1 SGroup:2
Form 1: typ: checkbox, HGroup: 2 SGroup:1
Form 1: typ: checkbox, HGroup: 2 SGroup:2
Form 1: typ: input, HGroup: 3 SGroup:1
Also dachte ich an folgende SQL Struktur:
Tabelle data: <-hier befinden sich die Datensätze mit den Ergebnissen
Tabelle detail <- mit den Werten für die Suchfunktion
Per PHP Überprüfe ich welche Checkbox/Input aktiv ist und füge es dem Query hinzu.
Jedoch weiß ich nicht so ganz wie ich den Query formulieren soll, bis jetzt sieht er so aus:
Gibt es eine Möglichkeit solch einen Query zu erstellen ?
Ohne das ich für jedes input Feld einen Join machen muss
Oder gibt es einen Besseren weg?
Hoffe ich hab mich verständlich ausgedrückt
mfg
Bis jetzt konnte ich großteils alles mit der Suchfunktion lösen jedoch häng ich jetzt bei einem Problem wo ich nicht weiterkomme

Ich will eine Suchfunktion programmieren wo Werte in mehreren Input/Checkboxen stehen, diese sich jedoch verändern können
Alle Form Elemente sind in einer Haupt und Untergruppe unterteilt
zb.:
Form 1: typ: input, HGroup: 1 SGroup:1
Form 1: typ: input, HGroup: 1 SGroup:2
Form 1: typ: checkbox, HGroup: 2 SGroup:1
Form 1: typ: checkbox, HGroup: 2 SGroup:2
Form 1: typ: input, HGroup: 3 SGroup:1
Also dachte ich an folgende SQL Struktur:
Tabelle data: <-hier befinden sich die Datensätze mit den Ergebnissen
id | name |
1 | Datensatz 1 |
2 | Datensatz 2 |
3 | Datensatz 3 |
pid <-Parent id | hid <-Hauptgruppe | cid <-Untergruppe | value <-Wert |
1 | 1 | 2 | 30 |
1 | 3 | 1 | 10 |
1 | 2 | 1 | 1 |
2 | 2 | 2 | 1 |
2 | 1 | 2 | 50 |
3 | 1 | 2 | 60 |
3 | 2 | 2 | 1 |
Per PHP Überprüfe ich welche Checkbox/Input aktiv ist und füge es dem Query hinzu.
Jedoch weiß ich nicht so ganz wie ich den Query formulieren soll, bis jetzt sieht er so aus:
PHP:
SELECT
data.id, data.name
FROM
data
LEFT JOIN
detail ON detail.pid = data.id
WHERE
( detail.hid = '1' AND detail.cid='1' AND detail.value='1' )
AND
( detail.hid = '2' AND detail.cid='1' AND detail.value='1' )
AND
... usw(je nachdem welcher input ausgewählt wurde)
GROUP BY
detail.pid
Ohne das ich für jedes input Feld einen Join machen muss
Oder gibt es einen Besseren weg?
Hoffe ich hab mich verständlich ausgedrückt

mfg