Probleme php/mysal

Fermé
supergengi - 26 nov. 2007 à 13:33
MaamuT Messages postés 174 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 20 décembre 2014 - 26 nov. 2007 à 15:34
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 174 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 20 décembre 2014 184
26 nov. 2007 à 13:59
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 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 27 novembre 2007
26 nov. 2007 à 14:49
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 174 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 20 décembre 2014 184
26 nov. 2007 à 15:34
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