oh...ik dacht niet dat het zo simpel was. Want je kunt moeilijk thumbnail selecteren van bijv 2detabel of 3tabel omdat die selectie niet aanwezig is in die tabel of niet soms?
//zoeken op alles de ingevoerde zoekwoord mag in 1 of meerdere tabellen voorkomen (zie or regel 60 OR)
$zoekexploded = explode(' ', $zoeken);
//zorgt ervoor dat de variabelen weer leeg zijn (vooral belangrijk na een al reeds uitgevoerde zoekopdracht
$like = "";
$like2 = "";
foreach($zoekexploded as $k=>$v)
{
if($k == 0)
{
$like .= "`trefwoord` LIKE '%".$v."%' ";
$like2 .= "`omschrijving` LIKE '%".$v."%' ";
}
else
{
$like .= "AND `trefwoord` LIKE '%".$v."%' ";
$like2 .= "AND `omschrijving` LIKE '%".$v."%' ";
}
}
$sql = "
SELECT
thumbnail,
trefwoord,
categorie,
omschrijving
FROM
afblocatie,
afbcategorie,
afbomschrijving,
afbtrefwoord
WHERE
categorie LIKE '$zoekopcategorie' AND
".$like." OR
".$like2."
";
}
//zoeken op alles de ingevoerde zoekwoord mag in 1 of meerdere tabellen voorkomen (zie or regel 60 OR)
SELECT al.thumbnail, at.trefwoord, ac.categorie, ao.omschrijving
ROM afblocatie AS al, afbcategorie AS ac, afbomschrijving AS ao, afbtrefwoord AS at
WHERE ....
ROM afblocatie AS al, afbcategorie AS ac, afbomschrijving AS ao, afbtrefwoord AS at
WHERE....
Verder lijkt de database mij wat vreemd opgebouwd, weer natuurlijk verder niet wat de bedoeling er achter is. Maar ik zie geen overeenkomende velden waarmee je associatie creëert.
bekijk eens: http://www.teks...twerpen/10
Zucht bedankt voor suggestie, maar dat is NIET noodzakelijk, werkt alleen makkelijker. Dan nog ben ik niets opgeschoten. Werkt niemand hier met meer dan 2 tabellen....kan me moeilijk voorstellen wellicht deze script meerinzicht geeft.
Dat zeg ik net ook.....maar ik heb nog steeds geen oplossing gekregen....zit nog steeds vast. In jouw voorbeeld had je er maar 1tje dus ik zit muurvast met die redenering. Al die tabellen zijn aan elkaar gekoppeld.
$sql = "SELECT
afblocatie.id,
afblocatie.thumbnail,
afbcategorie.categorie,
afbomschrijving.omschrijving,
afbtrefwoord.trefwoord,
FROM
afblocatie
INNER JOIN
afbtrefwoord
ON
afblocatie.id = afbtrefwoord.id
INNER JOIN
afbcategorie
ON
afblocatie.id = afbcategorie.id
INNER JOIN
afbomschrijving
ON
afblocatie.id=afbomschrijving.id
WHERE
afbcategorie.categorie LIKE '".$zoekopcategorie."'
AND
(
afbcategorie.categorie LIKE '".$like."'
OR
afbcategorie.categorie LIKE '".$like2."'
)";
$sql="SELECT
afblocatie.id,
afblocatie.thumbnail,
afbcategorie.categorie,
afbomschrijving.omschrijving,
afbtrefwoord.trefwoord,
FROM
afblocatie
INNER JOIN
afbtrefwoord
ON
afblocatie.id = afbtrefwoord.id
INNER JOIN
afbcategorie
ON
afblocatie.id = afbcategorie.id
INNER JOIN
afbomschrijving
ON
afblocatie.id=afbomschrijving.id
WHERE
afbcategorie.categorie LIKE '".$zoekopcategorie."'
AND
(
afbcategorie.categorie LIKE '".$like."'
OR
afbcategorie.categorie LIKE '".$like2."'
)";
Probeer die query eens.
Is met een join op 3 tabellen, zou dus best wel eens traag/trager kunnen zijn...
$sql = "
SELECT
afblocatie.thumbnail,
afbcategorie.categorie,
afbomschrijving.omschrijving,
afbtrefwoord.trefwoord,
FROM
afblocatie,
afbcategorie,
afbomschrijving,
afbtrefwoord
WHERE
afblocatie.id = afbtrefwoord.id
AND
afblocatie.id = afbcategorie.id
AND
afblocatie.id = afbomschrijving.id
AND
afblocatie.id = afbtrefwoord.id
AND
afbcategorie.categorie LIKE '".$zoekopcategorie."'
AND
(
afbcategorie.categorie LIKE '".$like."'
OR
afbcategorie.categorie LIKE '".$like2."'
)
";
$sql="
SELECT
afblocatie.thumbnail,
afbcategorie.categorie,
afbomschrijving.omschrijving,
afbtrefwoord.trefwoord,
FROM
afblocatie,
afbcategorie,
afbomschrijving,
afbtrefwoord
WHERE
afblocatie.id = afbtrefwoord.id
AND
afblocatie.id = afbcategorie.id
AND
afblocatie.id = afbomschrijving.id
AND
afblocatie.id = afbtrefwoord.id
AND
afbcategorie.categorie LIKE '".$zoekopcategorie."'
Foutmelding blifjt: Beide opties geprobeerd maar toch dezelfe error....
1e optie:
Notice: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM afblocatie, afbcategorie, afbomschrijving, afbtrefwoord ' at line 6
In query: SELECT afblocatie.thumbnail, afbcategorie.categorie, afbomschrijving.omschrijving, afbtrefwoord.trefwoord, FROM afblocatie, afbcategorie, afbomschrijving, afbtrefwoord WHERE afblocatie.id = afbtrefwoord.id AND afblocatie.id = afbcategorie.id AND afblocatie.id = afbomschrijving.id AND afblocatie.id = afbtrefwoord.id AND afbcategorie.categorie LIKE 'BVBo7' AND ( afbcategorie.categorie LIKE '`afbtrefwoord.trefwoord` LIKE '%fiets%' ' OR afbcategorie.categorie LIKE '`afbomschrijving.omschrijving` LIKE '%fiets%' ' )
2e optie
Notice: Unknown column 'fiets' in 'where clause'
In query: SELECT afblocatie.id, afblocatie.thumbnail, afbcategorie.categorie, afbomschrijving.omschrijving, afbtrefwoord.trefwoord FROM afblocatie INNER JOIN afbtrefwoord ON afblocatie.id = afbtrefwoord.id INNER JOIN afbcategorie ON afblocatie.id = afbcategorie.id INNER JOIN afbomschrijving ON afblocatie.id=afbomschrijving.id WHERE afbcategorie.categorie LIKE 'BVBo7' AND ( afbcategorie.categorie LIKE '`afbtrefwoord.trefwoord` LIKE '%fiets%' ' OR afbcategorie.categorie LIKE '`afbomschrijving.omschrijving` LIKE '%fiets%' ' ) in /home/..../domains/..../public_html/waterwolf/geavanceerd_zoeken.php on line 106