Hallo mensen,
Ik probeer aan de hand van een forum post van Jan Koehoorn (http://www.phphulp.nl/forum/showtopic.php?id=13062&cat=2&replies=0), een zoekfunctie te maken. Het enige verschil met deze functie is dat ik geen dropdown -menu gebruik.
Als ik 1 box aan vink, dat doet de functie het prima. Maar zodra ik bijvoorbeeld de checkboxen Snackbar en fiets selecteer krijg ik de volgende error:
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 'AND fiets = 1' at line 3
Ik gebruik de volgende code:
<?php
include ('inc/header.php');
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset ($_POST['asci'])) {
if ($and) {
$voorwaarden = ' AND asci = 1';
}
else {
$voorwaarden = 'WHERE asci = 1';
$and = true;
}
}
if (isset ($_POST['anwb'])) {
if ($and) {
$voorwaarden = ' AND anwb = 1';
}
else {
$voorwaarden = 'WHERE anwb = 1';
$and = true;
}
}
if (isset ($_POST['snk'])) {
if ($and) {
$voorwaarden = ' AND snk = 1';
}
else {
$voorwaarden = 'WHERE snk = 1';
$and = true;
}
}
if (isset ($_POST['svr'])) {
if ($and) {
$voorwaarden = ' AND svr = 1';
}
else {
$voorwaarden = 'WHERE svr = 1';
$and = true;
}
}
if (isset ($_POST['vekabo'])) {
if ($and) {
$voorwaarden = ' AND vekabo = 1';
}
else {
$voorwaarden = 'WHERE vekabo = 1';
$and = true;
}
}
if (isset ($_POST['kind'])) {
if ($and) {
$voorwaarden = ' AND kindvriendelijk = 1';
}
else {
$voorwaarden = 'WHERE kindvriendelijk = 1';
$and = true;
}
}
if (isset ($_POST['elec'])) {
if ($and) {
$voorwaarden = ' AND elec = 1';
}
else {
$voorwaarden = 'WHERE elec = 1';
$and = true;
}
}
if (isset ($_POST['huisdier'])) {
if ($and) {
$voorwaarden = ' AND huisdier = 1';
}
else {
$voorwaarden = 'WHERE huisdier = 1';
$and = true;
}
}
if (isset ($_POST['snackbar'])) {
if ($and) {
$voorwaarden = ' AND snackbar = 1';
}
else {
$voorwaarden = 'WHERE snackbar = 1';
$and = true;
}
}
if (isset ($_POST['fiets'])) {
if ($and) {
$voorwaarden = ' AND fiets = 1';
}
else {
$voorwaarden = 'WHERE fiets = 1';
$and = true;
}
}
$sql = "
SELECT *
FROM nieuws
" . $voorwaarden;
echo $sql;
// hierna je query uitvoeren
$res = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($res) >= 1)
{
?>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Camping</td><td>Plaats</td>
</tr>
<?php
while ($row = mysql_fetch_array($res))
{
?>
<tr>
<td><?php echo $row['titel'] ?></td><td><?php echo $row['plaats'] ?></td>
</tr>
<?php
}
?>
</table>
<?php
}
}
?>
als ik 1 aanvink is de sql code bv:
SELECT * FROM nieuws WHERE anwb = 1
als ik er 2 aanvik is de sql code bv:
SELECT * FROM nieuws AND anwb = 1
De fout zit er dus in dat hij het 2e gedeelte er niet juist achter plaatst.
Weet iemand wat ik nog moet toevoegen/veranderen?
Groeten,
Arjen
780 views