Interro PHP
Réponse AJAX

Première étape : découverte de la base de données

L'interro porte sur les départements et les villes de France. Il vous sera utile de voir la base de données (pour connaitre le nom des tables et le nom des champs) en vous connectant :
- cliquez ici : phpMyAdmin
- login : sio
- mdp : sio
- nom de la base de données : villes

Et pour vous connecter à cette base de données en PHP :
- hôte : 10.53.130.250
- login : sio
- mdp : sio
- nom de la base de données : villes

Pour résumer on va utiliser les tables suivantes :
- departement (dep_id, dep_nom, ...)
- ville (ville_id, ville_departement, ville_nom_reel, ville_code_postal, ...)
ville_departement est une clé étrangère qui fait référence à departement.dep_id.

Deuxième étape : affichage de la liste des départements

(4 points)

On va commencer par afficher la liste de tous les départements, triés par ordre alphabétique.

Le code HTML que vous devez générer pour chaque département ressemblera à :
<a href=?dep_id=84>84 - Vaucluse</a><br>

où :

Copiez ici le code PHP correspondant à cette étape :

Votre réponse n°1

Troisième étape : affichage de la liste des villes du département choisi

(2 points + 4 points)

Après que l'internaute a cliqué sur un département, on va afficher toutes les villes correspondant à ce département.

Sachant que le département est passé dans l'URL (cf. 2ème étape), comment allez-vous récupérer sa valeur en PHP ?

Votre réponse n°2

Le code HTML que vous devez générer pour chaque ville ressemblera à :
84210 - Althen-des-Paluds<br>

où :

Copiez ici le code PHP correspondant à cette étape :

Votre réponse n°3

Quatrième étape : Transformation de la liste des départements en contrôle zone de liste

(3 points)

Modifiez l'affichage des départements de façon à ce que le code HTML généré ressemble à :

<select name=dep_id>
...
<option value=83>83 - Var
<option value=84>84 - Vaucluse
...
</select>

Remarquez que pour réaliser cela, il faut ajouter un formulaire (puisqu'on ne fonctionne plus avec des liens hypertexte <a>...</a> mais avec un contrôle de formulaire <select>...</select>).

Copiez ici le code PHP correspondant à cette étape :

Votre réponse n°4

Cinquième étape : affichage de tous les départements dans lesquels se trouvent une ville saisie par l'internaute (indépendante des autres mais plus difficile)

(2 points + 2 points)

Cette-fois ci, l'internaute saisit un nom de ville dans une zone de texte. On affiche alors tous les départements dans lesquels une ville s'appelle ainsi.

Par exemple :

Tapez le nom d'une ville :
Il y a une ville nommée "Vitrolles" dans les départements suivants :
05 - Hautes-Alpes
13 - Bouches-du-Rhône

Si par exemple la ville est 'Vitrolles', quelle est la requête SQL qui sera exécutée par PHP pour obtenir les résultats attendus (vous pouvez tester cette requête directement dans phpMyAdmin) :

Votre réponse n°5

Copiez ici le code PHP correspondant à cette étape :

Votre réponse n°6

Sixième étape : gestion du "s" du pluriel dans la question prédédente

(2 points)

Améliorer (ou recopiez si c'est déjà géré) le code de l'étape précédente, de telle sorte que le "s" du pluriel soit bien géré selon qu'on n'affiche qu'un seul département ou plusieurs.

Par exemple :

Tapez le nom d'une ville :
Il y a une ville nommée "Avignon" dans les départements suivants : 84 - Vaucluse.

Copiez ici le code PHP correspondant à cette étape :

Votre réponse n°7

Septième étape : affichage propre de la liste dans la question prédédente

(1 points)

Améliorer (ou recopiez si c'est déjà géré) le code de l'étape précédente, de telle sorte que la liste des départements soient affichée proprement (départements séparés par des virgules, liste terminée par un point).

Par exemple :

Tapez le nom d'une ville :
Il y a une ville nommée "Sainte-Colombe" dans les départements suivants : 05 - Hautes-Alpes, 16 - Charente, 17 - Charente-Maritime, 21 - Côte-d'or, 25 - Doubs, 33 - Gironde, 35 - Ile-et-Vilaine, 40 - Landes, 46 - Lot, 50 - Manche, 69 - Rhône, 76 - Seine-Maritime, 77 - Seine-et-Marne, 89 - Yonne.

Copiez ici le code PHP correspondant à cette étape :

Votre réponse n°8

Huitième étape

Vous avez fini !? GG ! Vous pouvez partir et reprendre une activité normale (genre aller à l'interro de Mme Fauconnier ;-) !