Probleme php/mysal

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.
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. 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
    1. 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
  2. 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