SELECT op meerder criteria

Status
Niet open voor verdere reacties.

tsedney

Gebruiker
Lid geworden
2 jun 2008
Berichten
42
Hoi!

ik ben bezig met een website. In een paar drowdown menu's maakt de gebruiker een paar keuzes. Aan de hand van die keuzes moet SQL een paar records laten zien. Deze records voldoen dan ook aan de keuzes van de dropdown menu's die de gebruiker heeft gemaakt.

Dit stuk code heb ik tot nu doe.

PHP:
<?php
if ( isset( $_POST['Plaats'], $_POST['Soort'], $_POST['Prijs'] ) ) {
	$Plaats = $_POST['Plaats'];
	$Soort = $_POST['Soort'];
	$Prijs = $_POST['Prijs'];
   $host = "localhost"; // afhankelijk van de host
   $username = "root";  // ook, afhankelijk van de db
   $password = "";      // idem
   $db = "makelaar";

	$dbh = mysql_pconnect ( $host, $username, $password );
	if ( $dbh ) {
		mysql_select_db($db);
	}

	$query = "SELECT * FROM makelaar_tabel WHERE prijs , plaats = '$Prijs' , '$Plaats'" ;
   $res = mysql_query ( $query );

	//set up the table:
	echo( "<table border='1' bgcolor='lightblue' cellpadding='3'>" );

	//get the rows in the table:
	while( $row = mysql_fetch_assoc ( $res ) ) {
		//loop through the table, printing
		//the field values in table cells:
			echo("<tr>");
			echo("<td>".$row['soort']."</td><td>".$row['streek']."</td><td>".$row['prijs']."</td>");
			echo("</tr>");
		//close out the table:
	}
	print("</table>");
}
?>

Waar gaat het nu fout.. Bij deze query:

$query = "SELECT * FROM makelaar_tabel WHERE prijs , plaats = '$Prijs' , '$Plaats'" ;

Wat ik wil..
Selecteren op prijs, plaats, en Soort. in de tabellen.
Dit werkt niet...


Stel iemand vult in bij de dorp down menu 150.00 prijs, Plaats Parijs, en Soort woning Bungalow. En dan de SQL database afloopt en alleen de records laat zien die voldoen aan de keuzes die zijn gemaakt in het dorpdown menu.
 
Je zult per beperking een waarde moeten geven.

Je query zal er dus zo uit komen te zien
PHP:
$query = "SELECT *
FROM makelaar_tabel
WHERE prijs = '". $Prijs ."'
AND plaats = '". $Plaats ."'
AND soort = '". $Soort ."'";
 
Het werkt! Vriendelijk bedankt...


Ik wil nu eigenlijk ook iets neer zetten van als er geen gevonden records zijn dat hij dan afdrukt.. Niks gevonden....
 
Daarvoor zou je de PHP-functie mysql_num_rows() kunnen gebruiken.

PHP:
<?php 
if ( isset( $_POST['Plaats'], $_POST['Soort'], $_POST['Prijs'] ) ) {
  $Plaats = $_POST['Plaats']; 
  $Soort = $_POST['Soort']; 
  $Prijs = $_POST['Prijs']; 
  $host = "localhost"; // afhankelijk van de host 
  $username = "root";  // ook, afhankelijk van de db 
  $password = "";      // idem 
  $db = "makelaar"; 

  $dbh = mysql_pconnect ( $host, $username, $password ); 
  if ( $dbh ) { 
    mysql_select_db($db); 
  } 
  $query = "SELECT * 
            FROM makelaar_tabel 
            WHERE prijs = '". $Prijs ."' 
            AND plaats = '". $Plaats ."' 
            AND soort = '". $Soort ."'";  
  $res = mysql_query ( $query ); 
  if(mysql_num_rows($res) > 0) {
    //set up the table: 
    echo( "<table border='1' bgcolor='lightblue' cellpadding='3'>" ); 

    //get the rows in the table: 
    while( $row = mysql_fetch_assoc ( $res ) ) { 
      //loop through the table, printing 
      //the field values in table cells: 
      echo("<tr>"); 
      echo("<td>".$row['soort']."</td><td>".$row['streek']."</td><td>".$row['prijs']."</td>"); 
      echo("</tr>"); 
      //close out the table: 
    } 
    print("</table>");
  } else {
    echo "Er zijn geen resultaten";
  }
} 
?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan