Rechercher dans la base de donnée

Eléphanteau du PHP | 14 Messages

23 janv. 2016, 13:41

Bonjour,

Voilà mon problème :
Je souhaite créer une barre de recherche, et lorsque l'utilisateur clic sur la commune de son choix, la page se recharge avec la commune choisie. La liste des commune est sur ma base de donnée et pour l'instant j'ai ca qui fonctionne à merveille :

Code : Tout sélectionner

// on se connecte à notre base $base = mysql_connect ('localhost', 'c5meteo', '********'); mysql_select_db ('c5meteo', $base) ; // lancement de la requete $sql="SELECT ville_nom_simple,ville_latitude_deg FROM villes_france_free WHERE ville_nom_simple='COMMUNE VOULUE' ORDER BY ville_nom_simple"; // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // on recupere le resultat sous forme d'un tableau $resultat = mysql_fetch_array($req); // on libère l'espace mémoire alloué pour cette interrogation de la base mysql_free_result ($req); mysql_close (); ?> Ville choisie :<br /> <?php echo $resultat['ville_nom_simple']; define('NAME', $resultat['ville_nom_simple']); ?>
Le seule problème c'est que je souhaite que sur la ligne

Code : Tout sélectionner

$sql="SELECT ville_nom_simple,ville_latitude_deg FROM villes_france_free WHERE ville_nom_simple='COMMUNE VOULUE' ORDER BY ville_nom_simple";
, COMMUNE VOULUE soit celle que l'utilisateur est tapée sur une barre de recherche, et hop la page se recharge pour que le

Code : Tout sélectionner

define('NAME', $resultat['ville_nom_simple']);
prenne le nom de la commune trouvée.

J'espère que je suis clair.
Actuellement si je met un nom de commune à la place de COMMUNE VOULUE et que je recharge la page ca fonctionne à merveille !!

Merci d'avance.

EDIT : Au passage je sais qu'il faut utiliser mysqli maintenant, mais le problème c'est que je ne sais pas du tout comment ca fonctionne et ce qui change par rapport au code ci-dessus.

Mammouth du PHP | 2703 Messages

23 janv. 2016, 17:44

quelque chose comme :
$sql="SELECT ville_nom_simple,ville_latitude_deg FROM villes_france_free WHERE ville_nom_simple='".mysql_real_escape_string($_GET['nomduchamp'])."' ORDER BY ville_nom_simple";

des communes qui ont le même nom, il y en a un paquet sur les 36 000. là le script va toujours prendre la première.

Eléphanteau du PHP | 14 Messages

09 févr. 2016, 12:19

AH merci bien !! Je n'avais pas vu que j'avais de réponses !
Finalement j'ai réussi faire un menu déroulant avec recherche dynamique : http://www.meteo-aisne.fr/wsyrnofct3/recherche.php
Par contre j'ai un gros problème : le système fonctionne parfaitement sur safari, chrome et firefox, mais dès qu'il s'agit d'internet explorer ca bug complètement !!! C'est un visiteur qui m'a fait la remarque.
Est-ce que vous savez pourquoi et comment on pourrait faire pour que ca fonctionne sous IE :

Code : Tout sélectionner

<script type="text/javascript"> function truc() { document.getElementById("monForm").submit(); document.getElementById('monForm').innerHTML = "<center><img height='50px' src='http://www.meteo-aisne.fr/images/loading.gif' alt='Chargement'/><br/>Chargement de vos prévisions, veuillez patientier ..."; } </script> <div class="corps"> <form id="monForm" action="printfull.php" method="post" onselect="truc(this.value)" > <center> <span style="font-size: large;"><span style="color: #339966;"><strong>VOTRE COMMUNE : </strong></span><input type="search" style="width:425px;height:34px;font-size: 16px;" placeholder="Taper votre commune puis choisir dans la liste déroulante" autocomplete="off" name="username" list="browsers" > <datalist id="browsers" > <?php $bdd = new PDO('mysql:host=localhost;dbname=c5meteo;charset=utf8', '', ''); $reponse = $bdd->query('SELECT ville_nom_reel,ville_nom_simple,ville_departement FROM villes_france_free ORDER BY ville_departement IS NOT NULL'); while ($donnees = $reponse->fetch()){ ?> <span style="font-size: large;"><option value="<?php echo suppr_accents($donnees['ville_nom_reel']);?>"><?php echo $donnees['ville_nom_reel']; echo " ("; echo $donnees['ville_departement']; echo ")";?></option></span> <?php } $reponse->closeCursor(); ?> </datalist> </form> </div>

Mammouth du PHP | 881 Messages

09 févr. 2016, 14:35

Bonjour,

peut-être que ceci pourrait rendre ton site plus convivial (en présentant d'entrée de jeu une localisation assez proche)
http://php.net/manual/fr/book.geoip.php
http://www.commentcamarche.net/forum/af ... -ip-en-php
https://openclassrooms.com/courses/geol ... -a-leur-ip
Soyez artisans de paix

Eléphanteau du PHP | 14 Messages

09 févr. 2016, 19:23

En effet ce n'est pas bête je n'y avais pas penser ! Je vais l'intégrer dans la prochaine maj !

Par contre pour le problème d'internet explorer personne n'a d'idée ?