Probleme php/mysal

supergengi -  
MaamuT Messages postés 186 Statut Membre -
Bonjour,
je debute en php/mysql et j'ai un probleme d'apostrophe ou quelque chose comme ca dans cette requete

$result= mysql_query('select * from propreties where Area=\'' . $_POST['Area'] . ' \' and Type=\'' . $_POST['Type'] . ' \' and
Bedrooms=\'' . $_POST['Bedrooms'] . ' \' and Price BETWEEN '$pricebefore' AND '$priceafter' ' );

je crois que le probleme est dans la partie price.
svp aider moi.
merci d'avance.
A voir également:

2 réponses

MaamuT Messages postés 186 Statut Membre 184
 
Alavache© :o

C'est quoi ce code ?

Plusieurs choses ne vont pas;

Pour commencer, tu doit avoir en ta possession l'IDENTIFIANT_DE_LA_RESSOURCE_DE_CONNEXION qui normalement est retourné lors de la connexion à la base:

$idConnexion = mysql_pconnect(SERVEUR, NOM, PASS);

Tu ne peut pas utiliser la variable $_POST[''] directement dans ta requête, il te faut l'extraire avant:

$postArea = $_POST['Area'];
$postType = $_POST['Type'];
$postBedrooms = $_POST['Bedrooms'];

Ensuite tu créé une variable pour ta requête SQL (essaye de toujours mettre les options de MySQL en MAJUSCULES et de toujours intégrer ta requête dans des guillemets double " ):

$sql = "SELECT * FROM properties WHERE Area = $postArea AND Type = $postType AND Bedrooms = $postBderooms AND Price BETWEEN $pricebefore AND $priceafter";

Normalement, si tu utilise des guillemets doubles ", tu n'a pas besoin d'échapper les variables, mais dans certains cas, il te faudra les entourer de simple quote '

Puis tu exécute ta requête:

$result = mysql_query($sql, $idConnexion);

Après ça, tu récupère avec un mysql_fetch_xxx et ça devrait rouler.

A suivre…
1
supergengi Messages postés 6 Statut Membre
 
bonjour MaamuT
merci por ta reponse.
en effet j'ai mis seulement la partie qui fesait probleme voici le code c'est une tentative pour faire un moteur de recherche

<?php
mysql_connect("localhost","root","");
mysql_select_db("test");
if (isset($_POST['Area']) AND isset($_POST['Type'])AND isset($_POST['Bedrooms'])AND isset($_POST['Price']))

{
$pricebefore=substr($_POST['Price'],0,strpos($_POST['Price'],"-"));
$pricebefore=str_replace("-","",$pricebefore);

$priceafter=strstr($_POST['Price'],"-");
$priceafter=str_replace("-","",$priceafter);


$result= mysql_query('select * from propreties where Area=\'' . $_POST['Area'] . ' \' and Type=\'' . $_POST['Type'] . ' \' and Bedrooms=\'' . $_POST['Bedrooms'] . ' \' and Price BETWEEN '$pricebefore ' AND '$priceafter ' ' );

$num_rows = mysql_num_rows($result);
}
while ($donnees = mysql_fetch_array($result))
{


?>
<H2><font color="orange"size="6" >
Search Results:
</font><div style="color:black; font-size:20">
<p><strong>Area: <?php echo $donnees['Area'];?></strong></br>
<strong>Type:<?php echo $donnees['Type'];?></strong></br>
<strong>Bedrooms:<?php echo $donnees['Bedrooms']; ?></strong></br>
<strong>Price:<?php echo $donnees ['Price']; ?></strong></br></p>

<?php
}

if ($num_rows=='0'){
echo " Sorry Nothing Matched";
}
mysql_close();


?>
0
MaamuT Messages postés 186 Statut Membre 184
 
Reprend ce que je disais dans mon précédent message et adapte ton script, notamment la construction de la requête elle même.

Fais un echo de la requête pour la vérifier.
0