SQL query lukt niet
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
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.');
$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..
Als er nog vragen zijn hoor ik het wel.
Tim
SELECT veld FROM table WHERE veld=veld2;
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
Gewijzigd op 01/01/1970 01:00:00 door tim
Sorry voor de bump, maar het lukt me maar niet, iemand misschien een oplossing?
foutafhandeling!
Echo je query eens nadat je de variabelen er in hebt gezet. Overigens, wat is je fout? Gebruik een goede manier van Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
Code (php)
1
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
Gewijzigd op 01/01/1970 01:00:00 door tim
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
B.t.w: hij werkt niet want hij doet niets met de zoekresultaten..
Glazen bol is ter reparatie naar India gebracht, sorry ;-)
De query die hij parst is als volgd:
Code (php)
1
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:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
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"
)
FROM `opdrachten`
JOIN `opdrachtgever` ON opdrachten.email = opdrachtgever.email
WHERE MATCH (
naam, beschrijving
)
AGAINST (
"dakraam"
)
Ik snap dat hij
Code (php)
1
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?
Code (php)
1
2
3
2
3
AND ( opdrachten.rubriek='rubriek1'
OR opdrachten.rubriek2='rubriek1' )
ORDER BY opdrachten.id ASC
OR opdrachten.rubriek2='rubriek1' )
ORDER BY opdrachten.id ASC
Voor de zekerheid ook maar even haakjes toegevoegd.
Op de kolommen "naam en "beschrijving" heb je dus een fulltext sleutel ? Er van uitgaande dat je MySQL gebruikt.
Edit:
Volgens mij hoef je voor deze query ook niet gebruik te maken van fulltext.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
(Het erachter plakken van martijns query werkt niet want hij breekt het af :S)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT
opdrachten.id,
opdrachten.naam,
opdrachten.afbeeldingurl1,
opdrachten.beschrijving,
opdrachtgever.postcode,
opdrachtgever.woonplaats,
opdrachtgever.land
FROM
opdrachten,
opdrachtgever
WHERE
opdrachten.email = opdrachtgever.email
AND
MATCH (naam, beschrijving) AGAINST ("dakraam")
AND
(opdrachten.rubriek = "rubriek1"
OR
opdrachten.rubriek2 = "rubriek1"
)
ORDER BY
opdrachten.id ASC
opdrachten.id,
opdrachten.naam,
opdrachten.afbeeldingurl1,
opdrachten.beschrijving,
opdrachtgever.postcode,
opdrachtgever.woonplaats,
opdrachtgever.land
FROM
opdrachten,
opdrachtgever
WHERE
opdrachten.email = opdrachtgever.email
AND
MATCH (naam, beschrijving) AGAINST ("dakraam")
AND
(opdrachten.rubriek = "rubriek1"
OR
opdrachten.rubriek2 = "rubriek1"
)
ORDER BY
opdrachten.id ASC
Werkt die ook niet?