[RESOLU] Récuperer dans une table le code postal correspondant à une ville

Eléphant du PHP | 372 Messages

12 juil. 2015, 12:10

Salut les jeunes.
J'essai de faire un petit truc pour récupérer dans une variable le code postal d'une ville.
Je récupère la ville dans une variable ça c'est ok et j'aimerais maintenant du coup récupérer le code postal de cette ville dans une autre variable.
echo "$city[1] " ; // donne la ville en question

// Maitenant le système pour récupèrer le code postal en fonction de la ville
/ on crée la requête SQL
$sql = "SELECT cp FROM `cp_autocomplete` WHERE `ville` LIKE '".addslashes($lieu[1])." ";

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
    {
    // on affiche les informations de l'enregistrement en cours
    echo $data['cp'] ;
    }
Mais ca m'affiche :
Erreur SQL !
SELECT cp FROM `cp_autocomplete` WHERE `ville` LIKE 'Geispitzen
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Geispitzen' at line 1

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 juil. 2015, 13:25

Bonjour,

Tu as oublié une guillemet simple après le nom de la ville ;)
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 688 Messages

12 juil. 2015, 15:18

ton code fait une boucle et c'est bien utile car il y a un paquet de communes qui ont le même nom.
trier par Commune sur http://www.monbeauvillage.fr/saint pour s'en rendre compte.

Eléphant du PHP | 372 Messages

12 juil. 2015, 22:58

merci arthur effectivement c'est mieux, cependant dans ma bdd ma ville peut etre associer à plusieur code postaux exemple: Grenoble est égal à 38000, 38001,38002 ....
Je souhaite retenir que le premier.... il faut passer par un explode . Comment feriez vous ? Merci

Eléphant du PHP | 103 Messages

13 juil. 2015, 00:07

Moi je dirai plutôt strstr (jusqu'à). Explode = a partir de. Est-ce qu'il y a une virgule après le premier code ou autre caractère distinctif ?