2010-08-25 2 views
1

Je dois créer une requête de sélection qui va chercher les enregistrements en fonction de plusieurs variables comme:Création d'une requête de sélection qui va chercher les enregistrements en fonction de plusieurs variables

<?PHP 

@$task=$_REQUEST['task']; 
@$Country=$_REQUEST['Country']; 
@$City =$_REQUEST['City']; 
@$MosqName =$_REQUEST['txtMsqName']; 
@$PostCode =$_REQUEST['txtPostalCode']; 

$sql_serch="SELECT Country="."'".$Country."'", " City="."'".$City."'"." FROM job_mosqu"; 
?> 

Il ne fonctionne pas.

+1

Vous devriez désinfecter ces éléments 'Request' d'une manière ou d'une autre avant de les concaténer dans une requête pour éviter l'injection SQL. –

Répondre

1

Vous recherchez AND

SELECT * FROM job_mosqu WHERE Country='$country' AND City= '$City' 

Etc ...

+0

Fait amusant: Vous pouvez utiliser des parenthèses pour définir la priorité sur vos opérations et/ou. – Chris

0
SELECT * FROM job_mosqu WHERE Country='$country' AND City= '$City' AND task = '$task' AND $MosqName = '$MosqName'; 
0

Il est requête incorrecte. C'est une très mauvaise question. Peut être que vous voulez le prochain?

$task=$_REQUEST['task']; 
$Country =$_REQUEST['Country']; 
$City =$_REQUEST['City']; 
$MosqName =$_REQUEST['txtMsqName']; 
$PostCode =$_REQUEST['txtPostalCode']; 

$sql_serch="SELECT `Country`, `City` FROM `job_mosqu` WHERE `City`='" . $City. "' AND `Country`='" . $Country . "'"; 
2

Ne pas oublier d'échapper à votre entrée! NE JAMAIS mettre des variables entrées par l'utilisateur (telles que celles de $_REQUEST) directement dans les requêtes SQL. Soit utiliser des requêtes paramétrées ou échapper à l'entrée à l'aide mysql_real_escape_string, mysqli::real_escape_string ou PDO::quote en fonction de ce que vous vous interrogez avec ...

Quelques lectures sur le sujet:

  1. PHP MySQL by example
  2. StackOverflow question on it
  3. Coding Horror

Et pour répondre à votre question, utilisez le WHERE clause.

SELECT * FROM job_mosqu WHERE Country = ? AND City = ? ... 

Il y a beaucoup à lire là-bas sur l'utilisation de la clause where, juste faire quelques recherches si vous n'êtes pas à l'aise avec elle ...

  1. Tutorial on WHERE in mysql
  2. Another Tutorial
  3. And yet another
+0

J'ai trouvé ceci et cela fonctionne bien $ sql_serch = "SELECT * DE job_mosqu WHERE Pays = '". $ Pays. "' AND Ville = '". $ Ville. "' AND Zip = '". $ PostCode. " 'AND MosqueName =' ". $ MosqName." '"; – leonyx

Questions connexes