SQL Query erweitern bzgl. Position
Hallo,
ich habe in einem Shopsystem mehrere Filter pro Artikel, welche über ein SQL Query geladen werden. Leider haben die Entwickler nicht an die Position gedacht. Diese kann man im Backend für die Filter angeben, aber im Frontend werden die Filter nicht korrekt ausgegeben. Hat mir jemad einen Tipp, wie ich die Abfrage erweitern kann um die Position korrekt zu erhalten?
Alle Tabellen hier aufzuschreiben wäre etwas viel, daher nur mal die wichtigsten Tabelle. In der Tabelle s_filter_relation steht die Position.
Danke für eure Hilfe.
Gruß
Ottscho
ich habe in einem Shopsystem mehrere Filter pro Artikel, welche über ein SQL Query geladen werden. Leider haben die Entwickler nicht an die Position gedacht. Diese kann man im Backend für die Filter angeben, aber im Frontend werden die Filter nicht korrekt ausgegeben. Hat mir jemad einen Tipp, wie ich die Abfrage erweitern kann um die Position korrekt zu erhalten?
Alle Tabellen hier aufzuschreiben wäre etwas viel, daher nur mal die wichtigsten Tabelle. In der Tabelle s_filter_relation steht die Position.
s_filter:
id name position comparable sortmode
1 Tyres 1
2 Wheels 2
3 Tubes 3
s_filter_realtion:
id groupID optionID position
1 1 1 1
2 1 2 2
3 1 3 4
4 1 4 3
s_filter_options:
id name filterable default
1 ECO PRODUCT 1
2 XL REINFORCED 1
3 RUNFLAT 1
4 TEST 1
5 SPEED 1
6 TYRE CLASS 1
s_filter_values:
id groupID optionID articleID value
219900 1 20 53494 63.3
219899 1 19 53494 38
219898 1 18 53494 100
219897 1 17 53494 5
SELECT
fv.optionID AS id, COUNT(*) AS countOptionValues,
fo.name AS optionName,
f.name AS groupName,
fv.value AS optionValue,
fv.id AS uniqueID,
st.objectdata AS optionNameTranslation,
st2.objectdata AS groupNameTranslation,
st3.objectdata AS articleTranslation
FROM
s_articles_categories ac,
s_filter_values fv
LEFT JOIN s_core_translations AS st ON st.objecttype='propertyoption'
AND st.objectkey=fv.optionID
AND st.objectlanguage='de'
LEFT JOIN s_core_translations AS st2 ON st2.objecttype='propertygroup'
AND st2.objectkey=fv.groupID
AND st2.objectlanguage='de'
LEFT JOIN s_core_translations AS st3 ON st3.objecttype='properties'
AND st3.objectkey=fv.articleID
AND st3.objectlanguage='de'
JOIN
s_filter_options fo,
s_filter f,
s_articles a
WHERE ac.categoryID=15
AND a.id = ac.articleID
AND a.id = fv.articleID
AND a.filtergroupID = f.id
AND a.active =1
AND a.changetime <= NOW()
AND fv.optionID = fo.id
AND fo.filterable = 1
AND fv.groupID = f.id
GROUP BY fv.optionID,
fv.value
ORDER BY fo.name ASC,
IF(f.sortmode=1, TRIM(REPLACE(fv.value,',','.'))+0, 0), IF(f.sortmode=2, COUNT(*) , 0) DESC,
fv.value
Danke für eure Hilfe.
Gruß
Ottscho
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 188698
Url: https://administrator.de/forum/sql-query-erweitern-bzgl-position-188698.html
Ausgedruckt am: 22.12.2024 um 21:12 Uhr