Ik heb het volgende probleem: Ik heb een database opdrachten die de rijen naam, beschrijving, rubriek, rubriek2 hebben. Bij de uitgebreid zoeken functie heb ik nu deze php/sql code:
if($_GET['pht'] == 'on') {
$afb = 'AND opdrachten.afbeeldingurl1!="" ';
} else {
$afb = '';
}
$rubr = !isset($_GET['rubriek']) ? '': 'AND opdrachten.rubriek="'.anti_sql($_GET['rubriek']).'" AND opdrachten.rubriek2="'.anti_sql($_GET['rubriek']).'" ';
$results = mysql_query('SELECT * FROM `opdrachten` WHERE MATCH (naam, beschrijving) AGAINST ("'.anti_sql($_GET['q']).'") '.$afb.' '.$rubr.');
Het probleem is dat het niet lukt om een rij te selecteren waar rubriek Of rubriek2 gelijk zijn aan de ingevulde rubriek..
Die match is ook nodig voor mijn search (het is een searchpagina)
Edit: Om het wat duidelijker te maken, ik bedoel dus dat ik een search maak, en hij mag alleen rijen laten zien waarin de opgegeven rubriek in voor komt
SELECT opdrachten.id, opdrachten.naam, opdrachten.afbeeldingurl1, opdrachten.beschrijving, opdrachtgever.postcode, opdrachtgever.woonplaats, opdrachtgever.land FROM `opdrachten` JOIN `opdrachtgever` ON opdrachten.email=opdrachtgever.email WHERE MATCH (naam, beschrijving) AGAINST ("dakraam") AND opdrachten.rubriek="rubriek1" OR opdrachten.rubriek2="rubriek1" ORDER BY opdrachten.id DESC
Mijn probleem is niet dat er een fout in zit, maar dat ik niet kan zoeken in rubriek en rubriek2. Hij moet daar allebij in zoeken, alleen daar gaat het fout.
EDIT: Opgelost ;) ik weet niet hoe ik heb het gedaan, maar de bovenstaande code is gewoon ineens goed :S
Das niet zo fijn :)
De query die hij parst is als volgd:
SELECT opdrachten.id, opdrachten.naam, opdrachten.afbeeldingurl1, opdrachten.beschrijving, opdrachtgever.postcode, opdrachtgever.woonplaats, opdrachtgever.land FROM `opdrachten` JOIN `opdrachtgever` ON opdrachten.email=opdrachtgever.email WHERE MATCH (naam, beschrijving) AGAINST ("dakraam") AND opdrachten.rubriek="rubriek1" OR opdrachten.rubriek2="rubriek1" ORDER BY opdrachten.id ASC
De query die hij werkelijk uitvoert is zo:
SELECT opdrachten.id, opdrachten.naam, opdrachten.afbeeldingurl1, opdrachten.beschrijving, opdrachtgever.postcode, opdrachtgever.woonplaats, opdrachtgever.land
FROM `opdrachten`
JOIN `opdrachtgever` ON opdrachten.email = opdrachtgever.email
WHERE MATCH (
naam, beschrijving
)
AGAINST (
"dakraam"
)
Ik snap dat hij
AND opdrachten.rubriek="rubriek1" OR opdrachten.rubriek2="rubriek1" ORDER BY opdrachten.id ASC
Afkapt omdat het niet klopt, maar hoe zorg ik nou dat ik En kan zoeken, En kan kijken of rubriek1 in het veld rubriek of rubriek2 zit?