filteren mit behulp van php

Status
Niet open voor verdere reacties.

kritinet

Gebruiker
Lid geworden
25 nov 2007
Berichten
118
hoi
op mijn website heb ik een filter script

maar op deze pagina (http://www.estero-travel.com/nl/Rond-Combinatiereizen/index.php ) werkt het filteren niet.
Ik krijg volgende error
HTML:
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 '= "Combinatiereis" LIMIT 0, 4' at line 1

hier is het script dat ik er voor gebruik
PHP:
<?php 
$query_aanbiedingen = "SELECT * FROM aanbiedingen ORDER BY RAND() LIMIT 5"; 
$result_aanbiedingen = mysql_query($query_aanbiedingen) or die(mysql_error());

$result = mysql_query ( "SELECT * FROM accos WHERE name LIKE '%" . $_POST[ 'search' ] . "%' OR type LIKE '%" . $_POST[ 'search' ] . "%' OR description LIKE '%" . $_POST[ 'search' ]. "%' OR village LIKE '%" . $_POST[ 'search' ]. "%' OR streek LIKE '%" . $_POST[ 'search' ] . "%' OR country LIKE '%" . $_POST[ 'search' ] . "%'" ) ;  
 
 
$query = "SELECT * FROM rondreizen "; 
$result = mysql_query($query) or die(mysql_error());


$maxRows_rondreizen = 4;
$pageNum_rondreizen = 0;
if (isset($_GET['pageNum_rondreizen'])) {
  $pageNum_rondreizen = $_GET['pageNum_rondreizen'];
}
$startRow_rondreizen= $pageNum_rondreizen * $maxRows_rondreizen;
 
mysql_select_db($database_db, $db);

	$filter = "";
 
if (isset($_GET["filter"]) && $_GET["filter"] == "Rondreis") {
    $filter = 'AND type = "Rondreis"';
}
if (isset($_GET["filter"]) && $_GET["filter"] == "Combinatiereis") {
    $filter = 'AND type = "Combinatiereis"';

}

$query_rondreizen = "SELECT * FROM rondreizen" .$filter   ; 
$query_limit_rondreizen = sprintf("%s LIMIT %d, %d", $query_rondreizen, $startRow_rondreizen, $maxRows_rondreizen);
$rondreizen = mysql_query($query_limit_rondreizen, $db) or die(mysql_error());
$row_rondreizen = mysql_fetch_assoc($rondreizen);
 
 
if (isset($_GET['totalRows_rondreizen'])) {
  $totalRows_rondreizen = $_GET['totalRows_rondreizen'];
} else {
  $all_rondreizen = mysql_query($query_rondreizen);
  $totalRows_rondreizen = mysql_num_rows($all_rondreizen);
}
$totalPages_rondreizen = ceil($totalRows_rondreizen/$maxRows_rondreizen)-1;
 
$queryString_rondreizen = "";
if (!empty($_SERVER['QUERY_STRING'])) {
   $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_rondreizen") == false && 
        stristr($param, "totalRows_rondreizen") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_rondreizen = "&amp;" . htmlentities(implode("&amp;", $newParams));
  }
}
$queryString_rondreizen = sprintf("&amp;totalRows_rondreizen=%d%s", $totalRows_rondreizen, $queryString_rondreizen);



?>
HTML:
 <select name="select" class="styleextra2" onchange="filter('index.php?filter=', this)">
  <option value="" selected="selected">Filter op...</option>
      <option value="Rondreis">Rondreis</option>
      <option value="Combinatiereis">Combinatiereis</option>
    </select>


<?php do { ?>
    <table width="100%" border="1px" bordercolor="#6F0024 "    cellpadding="2" cellspacing="0"  >  <tr>     <td colspan="2" class="aanbieding2">
     <?php echo $row_rondreizen['periode']?> &nbsp;daagse&nbsp; <?php echo $row_rondreizen['name'] ?> </td></tr><tr> <th width="210" valign="top" ><?php echo $row_rondreizen['image']?></th>
    <td valign="top" align="left" >
    <strong>Land: </strong><?php echo $row_rondreizen['land']?><br/>
    <strong>Streek:&nbsp;</strong><?php echo $row_rondreizen['streek']?><br/>
    <strong>Plaatsen:&nbsp;</strong><?php echo $row_rondreizen['plaatsen'] ?><br/>
	<strong>Type reis:&nbsp;</strong><?php echo $row_rondreizen['type'] ?><br/><br/>
	<?php echo $row_rondreizen ['omschrijving'] ?><br/><center>
	<?php echo $row_rondreizen['route']?></center>
    <br/><strong><u>Inclusief:&nbsp;</u></strong><?php echo $row_rondreizen['inclusief']?><br/><br/></td></tr> <tr> <td   colspan="2" align="center"> <?php echo $row_rondreizen['prijstabel'] ?> <br/><br/>   
         <?php echo $row_rondreizen['extra']?><br/></td> </tr></table><br/><center> * * *</center> </br></br> 
 
<?php } while ($row_rondreizen = mysql_fetch_assoc($rondreizen)); ?>
wie kan me er mee helpen ?
 
Een fout in de SQL syntax wil zeggen dat de query die je probeert uit te voeren niet klopt. Wat is de query die je wilt uitvoeren ( echo $query_limit_rondreizen; ) ?
 
PHP:
mysql_select_db($database_db, $db);
 
    $filter = "";
 
if (isset($_GET["filter"]) && $_GET["filter"] == "Rondreis") {
    $filter = 'AND type = "Rondreis"';
}
if (isset($_GET["filter"]) && $_GET["filter"] == "Combinatiereis") {
    $filter = 'AND type = "Combinatiereis"';
 
}









$query_rondreizen = "SELECT * FROM rondreizen" .$filter   ; 
$query_limit_rondreizen = sprintf("%s LIMIT %d, %d", $query_rondreizen, $startRow_rondreizen, $maxRows_rondreizen);
$rondreizen = mysql_query($query_limit_rondreizen, $db) or die(mysql_error());
$row_rondreizen = mysql_fetch_assoc($rondreizen);
 
Kijk eens wat er uit komt als je de query opbouwt ;)

$filter = 'AND type = "Rondreis"';
$query_rondreizen = "SELECT * FROM rondreizen" .$filter ;

[sql]
SELECT * FROM rondreizen AND type = "Rondreis"
[/sql]
 
heb het net zelf uitgevonden

PHP:
$filter = "";
 
if (isset($_GET["filter"]) && $_GET["filter"] == "Rondreis") {
    $filter = 'WHERE type = "Rondreis"';
}
if (isset($_GET["filter"]) && $_GET["filter"] == "Combinatiereis") {
    $filter = 'WHERE type = "Combinatiereis"';

}
het moest WHERE zijn en niet AND
 
Dat is ook waar ik op doelde, inderdaad :P
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan