mam kilka rzeczy, które blokują mi pracę nad projektem - otóż:
Optymalizacja:
Tabela kategorii składa się z dwóch kolumn:
`category_parent_id`, `category_child_id`
w niej powiązania kategorii.
jeżeli `category_parent_id` = 0; to jest to kategoria glowna.
w moim sklepie (skrypt joomla) po wygenerowaniu strony znam aktualną kategorię, ale chcę wyciągnąć z powyższej tabeli główną kategorię. Napisałem samo-powtarzającą się funkcję która wykonuje X zapytań. Ale gdy będzie to powiedzmy 10 podkategoria, to będę miał 10 zapytań.
oto przykład:
SELECT * FROM `#__{vm}_category_xref` WHERE category_child_id='69' SELECT * FROM `#__{vm}_category_xref` WHERE category_child_id='34'
Pytanie 1: Czy jest możliwość zrobienia tego w jednym zapytaniu, tak aby nie było różnicy, czy jest to 10 poziom w drzewku czy np 60(przesadzilem teraz oczywiscie)
Problem z zapytaniem:
Mam nieznaną liczbę tabel o szablonowej nazwie `jos_vm_product_type_#`, gdzie # to nr od 1 do ...
w każdej z nich jest kolumna `product_id`
ilość tabel wyciągam za pomocą:
SELECT `product_type_id` FROM `jos_vm_product_type` ORDER BY `product_type_id` ASC
i za pomocą PHP generuje kolejne złożone zapytanie.
Pytanie 2a: czy da się w jakiś inny sposób określić tabele jaka mają zostać przeszukane nie znając ich ilości, a tylko szablon nazwy bez zapytania o ilość tabel?
chciałbym np znaleźć wartość 106 w tym polu - dana wartość może wystąpić tylko 1 raz (np gdy jest w tabeli_1, to w pozostałych już jej na pewno nie ma). próbowałem zrobić to za pomocą UNION:
(SELECT product_id AS A1 FROM jos_vm_product_type_1 WHERE product_id = '106') UNION (SELECT product_id AS A2 FROM jos_vm_product_type_2 WHERE product_id = '106') UNION (SELECT product_id AS A3 FROM jos_vm_product_type_3 WHERE product_id = '106') UNION (SELECT product_id AS A4 FROM jos_vm_product_type_4 WHERE product_id = '106') UNION (SELECT product_id AS A5 FROM jos_vm_product_type_5 WHERE product_id = '106') UNION (SELECT product_id AS A6 FROM jos_vm_product_type_6 WHERE product_id = '106')
ale zostaje zwrócony taki oto wynik:
`A1` = '106'
w taki oto sposób, muszę zdefiniować za pomocą php, czy w polach A1,A2,A3 ... nie wystąpiła jakaś wartość != "".
Pytanie 2b: jak skonstruować zapytanie, które przeszuka mi wszystkie tabele o szablonie nazwy podanym wyżej, przeszuka po polach `product_id` i zwróci mi wynik w postaci `product_id`='106' oraz nazwe/nr tabeli w ktorej wystapila ta wartość.
Pozdrawiam