Au passage, c'était pas une bonne idée de n'avoir pas donné les vrais noms de tables et champs que tu avais, ça nous oblige à relire plusieurs tes codes pour faire une gymnastique ...
Select m.id, m.name, m.fname, m.company, p.n_country from u_member m join u_country p ON m.n_country = p.id
Bon, "u_country" c'est les pays, et la clé primaire c'est : id
Coté membres c'est la table "u_member" et la clé étrangère pour le pays c'est : n_country
Franchement, renommer tes champs ainsi serait plus logique et devrait améliorer la compréhension à mon sens.
Table "u_member" : id_membre | lastname | firstname | company | id_country
Table "u_country" : id_country | name |
Ce qui donnerait une requête comme ceci :
1 2
| SELECT m.id_member, m.lastname, m.firstname, m.company, p.id_country, p.name
FROM u_member m join u_country p ON m.id_country = p.id_country |
1 2 3
| $id_cat = $sl["id"];
$n_country = $sl["n_country"];
if ($id_cat == $n_country) |
Faut être logique.
Pour sectionner le pays d'1 utilisateur en particulier, il faut faire les comparaisons avec la valeur de l'identifiant du pays de cet utilisateur.
Cette donnée là n'apparait nulle part dans cette condition (code ci-dessus).
D'ailleurs, le champ "n_country" ne se trouve pas dans cette table "u_country" (mais dans la table membre).
Php devrait retourner une erreur du fait que ce champ n'existe pas, non ?
Aussi, je t'avais conseillé de ne jamais faire de SELECT *, mais de mettre explicitement le nom des champs que l'on veut récupérer, et uniquement.
En faisant : SELECT p.id, p.country FROM u_country
tu aurais vu de suite ce problème de nom.
(d'ailleurs, "Nom_Pays" était le nom du champ des pays, mais maintenant on ne sait plus, j'ai supposé que c'est : "country").
Pour éditer un membre, tu as dû faire une requête SQL sélectionnant ce membre, et entre autre y mettre ce champ "n_country".
Il faut faire la comparaison avec la valeur de ce champ là de cet utilisateur là.
Quelque chose comme : (en partant du principe que $membre est le tableau contenant les données du membre)
1 2 3 4
| // Comparaison entre l'identifiant du pays du membre et l'identifiant du pays en court
if ($membre['n_country'] == $sl['id']) {
$selected = "selected";
} |
On récupérera la valeur du pays sélectionné avec $_POST['n_country'] (ou $_GET) pour mettre à jour le pays.
En espérant de ne pas me tromper.
Partager