Version complète : site web
Forum Fr > Informatique > Dev, DAO et CAO > Dev. Divers
Angelo
Bonjour , je solicite votre aide pour un souci que j'ai rencontré :

alors j'ai fais un moteur de recherche pour mon site afin de pouvoir retrouver tout les disques d'un même format (format étant l'un des champs de ma table)


le souci c'est que ces format sont de cette forme :
7"PS, 12"PS

et donc le caractere " me gene blink.gif

donc voici le code correspondant à ma page d'acceuil (ou se trouve le moteur de recherche) :

CODE
<p>Recherche par format</p>
<form action="RechercheFormat.php?langue=F" method="post">
<p><select name="format">
   <option value='7"PS'>7"PS</option>
   <option value='7"LS'>7"LS</option>
   <option value='7"CV'>7"CV</option>
   <option value='7"PD'>7"PD</option>
   <option value='7"SHP'>7"SHP</option>
   <option value='10"PS'>10"PS</option>
   <option value='10"CV'>10"CV</option>
   <option value='10"PD'>10"PD</option>
   <option value='10"SHP'>10"SHP</option>
   <option value='12"PS'>12"PS</option>
   <option value='12"CV'>12"CV</option>
   <option value='12"PD'>12"PD</option>
   <option value='LP'>LP</option>
   <option value='LPPD'>LPPD</option>
   <option value='LPCV'>LPCV</option>
   <option value='DLP'>DLP</option>
   <option value='DLPPD'>DLPPD</option>
   <option value='DLPCV'>DLPCV</option>
</select></p>
<input class="valider" type="submit" value="Rechercher" /></p>
</form>


et celui de ma page RechercheFormat:


CODE
mysql_connect("localhost", "****", "****");
mysql_select_db("****");
$format= htmlentities($_POST['format']);        
echo ($format);
$sql = "SELECT * FROM liste where Format like '$format' order by Groupe,Titre";
$reponse = mysql_query ($sql);
if (mysql_num_rows($reponse)==0)
{
        echo "<p><center><strong>Il n'y a aucun disque répondant à votre recherche</center></strong></p>";
?>
<p><center><a href="index.html">Retour</a></center></p>
}


la il me dis que je n'ai aucun disque correspondant à ma recherche alors qu'il devrait en avoir !
deplus j'ai essayer en ne mettant que
CODE
$format= ($_POST['format']);

la ca marche sauf que je gere aussi le nombre de page possible qui s'affiche et donc quand je passe format en variable , il passe uniquement le chiffre de format

exemple pour 7"PS je vois comme adresse :
http://monsite.org/RechercheFormat.php?format=7
Méthylbro
utilise des identifiants pour tes formats. Soit, une table dédiées pour eux avec une clés étrangère dans ta table disque.
Phobos
tu peux déjà corriger pour mettre LIKE '%".$format."%' et ça marchera tel quel wink1.gif
Méthylbro
vu qu'il utilise des double quote " ... LIKE %$format% ..." ca fonctionne très bien ^^
Angelo
j'ai pas eu l'occassion de restester (ca m'est un peu sorti de la tete d'ailleur tongue.gif) mais je vous tiendrai au courant
Wixblog.com
Tu dois systématiquement mettre des slashes sur les ' et " avant de les insèrer dans ta base de donnée, et à forciori lors de la recherche.

$var = "17''PS";
Pour inserer dans la base de donnée ta valeur utilise : addslashes($var);
De même lors de la recherche : $sql = "SELECT * FROM liste where Format like 'addslashes($format)' order by Groupe,Titre";

Quand tu récupères ton enregistrement pour l'afficher il va de soit qu'il faut supprimer les slashes, utilise : stripslashes();

Voilà laugh.gif
Invision Power Board © 2001-2008 Invision Power Services, Inc.