HTML interesse |
|
Ik heb 2 tabellen waarin mijn zoekmachine moet zoeken.
Tabel as_productgroep
=====================
id | artgroep | productnaam | zoek
--------------------------------------------------
15 | E2039 | waterfilter | zeef, doorzichtig
16 | FW393 | pomp | olie, sproei
Tabel as_artikel
================
id | product | artnummer
---------------------------
5 | 15 | Z105-W
6 | 15 | Z105-AB
9 | 15 | Z105-WZ
34 | 15 | Z105-P
Mijn zoekmachine moet zoeken in velden 'productnaam' en 'zoek' van tabel as_productgroep EN in veld 'artnummer' van tabel as_artikel. Daarbij wil ik enkel de gegevens van tabel as_productgroep laten weergeven en niets van tabel as_artikel. Dus de gegevens van mijn zoekresultaat bestaat uit tabel as_productgroep.
Veld 'product' van tabel as_artikel is gelijk aan veld 'id' van tabel as_productgroep. Er kunnen meerdere productid's zijn die wordt gelinkt naar 1 id van tabel as_productgroep.
Het probleem is dat mijn searchquery niet goed werkt.
Mijn query is:
<?php
$sSearchQueryA = "SELECT DISTINCT(".TBL_ART.".product), ".TBL_PRO.".id AS id, ".TBL_PRO.".artgroep AS artgroep, ".TBL_PRO.".productnaam AS productnaam FROM ".TBL_ART." INNER JOIN ".TBL_PRO." ON (".TBL_ART.".product = ".TBL_PRO.".id) WHERE ".TBL_PRO.".zoek LIKE '%".$_POST['zoeken']."%' OR ".TBL_PRO.".productnaam LIKE '%".$_POST['zoeken']."%' OR ".TBL_ART.".artnummer LIKE '%".$_POST['zoeken']."%' ORDER BY ".TBL_PRO.".artgroep ASC";
?>
<?php $sSearchQueryA = "SELECT DISTINCT(".TBL_ART.".product), ".TBL_PRO.".id AS id, ".TBL_PRO.".artgroep AS artgroep, ".TBL_PRO.".productnaam AS productnaam FROM ".TBL_ART." INNER JOIN ".TBL_PRO." ON (".TBL_ART.".product = ".TBL_PRO.".id) WHERE ".TBL_PRO.".zoek LIKE '%".$_POST['zoeken']."%' OR ".TBL_PRO.".productnaam LIKE '%".$_POST['zoeken']."%' OR ".TBL_ART.".artnummer LIKE '%".$_POST['zoeken']."%' ORDER BY ".TBL_PRO.".artgroep ASC"; ?>
Als ik zoek op '105' moet zoekmachine uiteindelijk 1 resultaat geven met artgroep E2039. Om ervoor te zorgen dat dubbele resultaten, anders krijg ik 4 dezelfde resultaat, vanuit tabel as_artikel verschijnen doe ik DISTINCT product. Dit werkt allemaal keurig als ik op artikelnummer zoek.
Maar stel dat ik als zoekterm 'water' invul, moet ik uiteindelijk ook 1 resultaat krijgen, maar dit doet hij niet. Hetzelfde geldt als ik op 'zeef' zoek. Ik krijg dan geen resultaat. Het probleem ligt denk ik bij een stukje ON (".TBL_ART.".product = ".TBL_PRO.".id), omdat ik dan niet meer zoek in tabel as_artikel.
Hoe krijg ik de resultaten als ik zoek in tabel as_productgroep?
Mijn volgende query werkt goed zolang ik tabel as_artikel niet integreer met JOIN.
<?php
$sSearchQueryA = "SELECT id, artgroep, productnaam FROM ".TBL_PRO." WHERE zoek LIKE '%".$_POST['zoeken']."%' OR productnaam LIKE '%".$_POST['zoeken']."%' ORDER BY artgroep ASC";
?>
<?php $sSearchQueryA = "SELECT id, artgroep, productnaam FROM ".TBL_PRO." WHERE zoek LIKE '%".$_POST['zoeken']."%' OR productnaam LIKE '%".$_POST['zoeken']."%' ORDER BY artgroep ASC"; ?>
|