cs_bonobos
Messages postés34Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention15 décembre 2005
-
17 nov. 2005 à 13:21
cs_bonobos
Messages postés34Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention15 décembre 2005
-
17 nov. 2005 à 15:12
Bonjour,
Dans un formulaire l'utilsateur entre le nom d'une commune par exemple :
L'isle Jourdain..
<td>Commune :</td>
<td>"></td>
Dans un tableau s'affiche le nom de la commune, au passage la souris le nombre de ventes dans cette commune et le lien pour acceder à toutes les ventes de cette commune.
<?php //affiche la commune, le nbre de ventes pour cette commune et le lien pour voir ttes les ventes de cette commune
$req = mysql_query("select * from vente where commune='$vente[commune]'");
$resultats = mysql_numrows($req);
echo '<td bgcolor='.$bgcolor.'>';?>
<?php $lien="index.php?liste=ventes&choix=commune&ville_choisi=".$vente['commune'];
{?>
<?php echo ('['.$lien.' '.$vente ['commune'].']');
}?>
</td>
Et je viens de m'apercevoir que les communes qui contiennent une apostrophe n'affichent pas le nombre de ventes ! Par contre celles qui ne contiennent pas d'apostrophes affichent correctement par exemple:
Il y a X constructions à Grenade
comment puis-je remédier à celà ? Merci.
A voir également:
Comment gérer les apostrophes d'un mot provenant d'un formulaire ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 17 nov. 2005 à 13:34
Hello,
erreur fatale...
Tu aurais dû enregistrer tes commune,s dans ta base, en échappant les caractères dangereux, avec par exemple la fonction dédies : mysql_real_escape_string().
Ensuite, tu aurais "de-echappé" ces noms avant de les afficher dans ton champ texte.
Et lors de la saisie utilisateur, ben tu les aurais "re-échappées" avant d'effectuer la recherche dans ta table.
Là, en l'occurence, tu peux peut-être tricher...(mais pense à refaire ta table et les insertions, parce que c'est dangereux, en plus...) :
$commune = str_replace ("'", "%",$vente['commune']);
$req = mysql_query("select * from vente where commune LIKE $commune");
2 choses néanmoins :
on n'utilise pas select * !
Ensuite, c'est $vente['commune'] et pas $vente[commune]. Donc ta requête aurait dû être :
$req = mysql_query("select cequetucherches from vente where commune='".$vente['commune']."'");
cs_bonobos
Messages postés34Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention15 décembre 2005 17 nov. 2005 à 14:15
Salut et merci pour la rapidité de la réponse...
Je t'ai entendu et fait ceci:
<?php //affiche la commune, le nbre de ventes pour cette commune et le lien pour voir ttes les ventes de cette commune
$commune = str_replace ("'", "%",$vente['commune']);
$req = mysql_query("select * from vente where commune LIKE $commune");
$resultats = mysql_numrows($req); <=== ici la ligne 168 mais je pense que c'est celle du dessus qui crée probléme !
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in d:\easyphp\www\gbf\ventes.php on line 168
D'autre part entrer ttes les communes à la main dans une table serait un boulot de titan !
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 17 nov. 2005 à 15:03
Je ne connaissais pas mysql_numrows...à ma connaissance, il n'y a que mysql_num_rows()
Essaye ta requête en dur : prends une de tes communes avec une
apostophe, remplace l'apostrophe par % et fais ta requête avec ce mot à
la place de $commune.