8791 sujets

Développement web côté serveur, CMS

Bonsoir,

Désolé pour le sujet peu explicite mais je suis actuellement confronté à un problème en PHP/SQL.

Pour faire simple j'ai un formulaire d'inscription dans lequel j'ai une balise de type select dans laquelle je fais une requete sql permettant de lister le pays d'appartenance de l'individu.

J'ai donc ma table "client", contenant un idpays (clé étrangère).

Mon problème vient lors d'une modification de profil... J'arrive à récupérer les données du client dans mon formulaire de modification mais évidemment pas la donnée "pays" dans mon select. Celui ci revient par défaut à "France" par exemple alors que mon client se situe en Belgique...

Voilà pour l'exemple

fichier : afficher_client.php

//Affichage de la table client, avec sur le côté deux boutons submit(modifier, supprimer). Je passe l'id du client en variable hidden, comme ça, au clic d'un des deux boutons, je récupère l'id du client.

fichier : traitement_client.php

Je teste d'une part si c'est une suppression ou une modification, si c'est une modifiction, je sélectionne les infos du client ou l'id est = à la variable hidden.

Suite à cela, j'affiche le formulaire avec infos du client pré remplis dans des champs normaux de type text.

Je suis en possession de l'ID de pays que je voudrais injecter dans un champs de type SELECT pour que le client soit correctement identifié par son pays, mais je ne vois pas comment faire.

Exemple : Si le client a mis "Belgique" lors de son inscription, Belgique doit apparaitre par défaut dans le select.

select nom_pays from pays where id_pays= id_pays de la table client.

Cette requête me retourne le pays du client, ex : Belgique, mais comment afficher ce résultat par défaut dans la balise select étant donné que celle ci contient une requête permettant de lister tous les pays.

bref lister les pays et mettre celui du client par défaut.
D'avance merci.
Modifié par Francis59000 (23 Jan 2010 - 22:04)
Salut,

Francis59000 a écrit :
select nom_pays from pays where id_pays= id_pays de la table client.

Cette requête me retourne le pays du client, ex : Belgique, mais comment afficher ce résultat par défaut dans la balise select étant donné que celle ci contient une requête permettant de lister tous les pays.

bref lister les pays et mettre celui du client par défaut.
En fait tu n'as pas besoin d'effectuer la requête pour retrouver le libellé du pays client : il suffit de vérifier l'égalité de l'id_pays avec celui que tu es en train de rajouter dans le Select.

Par exemple :
$id_pays_client = 3;
$sql = 'Select id_pays, nom_pays From pays Order By nom_pays';
$result = mysql_query($sql);
echo '<label for="pays">Pays :</label>'; 
echo '<select name="pays" id="pays">'; 
while($row = mysql_fetch_assoc($result)) {
	$selected = $row['id_pays'] == $id_pays_client ? ' selected="selected"' : '';
	echo '<option value="'.$row['id_pays'].'"'.$selected.'>'.$row['nom_pays'].'</option>';
}
echo '</select>'; 

Modifié par Heyoan (24 Jan 2010 - 12:18)