Bonjour,
Alors j'ai un petit souci sur mon site que je développe en suivant l'architecture MVC. Je vous explique tout ça :
- Côté base de données, j'ai :
- une table UTILISATEURS avec les champs suivants : id_user, login, mdp, nom, prenom, email
- une table DROIT avec : id_user, id_groupe
La table droit me sert, comme son nom l'indique, à donner des droits à un utilisateur selon le groupe.
Maintenant je voudrais pouvoir modifier la table droit depuis mon site et ne plus avoir à modifier directement la DB... Si jamais quelqu'un d'autre est amené à le faire.
C'est pourquoi je me suis lancé dans le développement de ce petit module, j'avais déjà fait quelque chose qui permettait de lister les utilisateurs et de les modifier (donc requêtes sur la table UTILISATEURS). Tout fonctionne pour ça.
Par contre, là où j'ai un problème c'est au niveau de la table DROIT, je n'arrive pas à la modifier correctement. En fait, je n'arrive pas à accéder à l'id_user d'une vue à l'autre.
Voici les codes :
VUE PRINCIPALE
envoi au CONTROLLER
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href="<?=HTTP_PATH?>users/group-<?=$aUser['id_user']?>/"><button class="btn btn-default"><i class="icon-pencil"></i>Ajout groupe</button></a>
demande une fonction au MODEL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if($_GET['_action_'] == 'group'){ $aUserGroupe = getAUserGroupe($_GET['_id_']); $content_for_layout = 'view/'.$_GET['_page_'].'/'.$_GET['_page_'].'_group_view.php'; include ('view/layout/global_layout.php'); }
Ensuite je vais à la VUE de la modif de groupes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function getAUserGroupe($id_user) { $db = new db_mysqli(); $query = "SELECT id_user,login FROM user JOIN droit USING(id_user) WHERE id_user='".$id_user."'"; $infos = $db->query($query); return $infos[0]; }
J'ai enlevé les div, etc... pour plus de lisibilité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <form action="<?=HTTP_PATH?>users/updateGroupe-<?=$aUserGroupe['id_user']?>/" id="form_sample_1" class="form-horizontal" method="post"> <input type="text" class="span6 m-wrap" name="id_user" value="<?=$aUserGroupe['id_user']?>"/> <input type="text" class="span6 m-wrap" name="id_groupe" value=""/> <button type="submit" class="btn btn-primary">Modifier</button> </form>
Et donc en fait sur cette vue, je vois bien que dans l'URL de la page l'id_user est pris en compte puisqu'elle ressemble à ça :pour l'utilisateur 22. Mais par contre je n'arrive pas à y accéder dans la vue des groupes, pour attribuer la valeur de l'id_user à l'input correspondant par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part http://localhost/site/users/group-22/
Et ensuite le CONTROLLER fait
et la fonction dans le MODEL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if($_GET['_action_'] == 'updateGroupe'){ addGroupe($_POST['id_user'], $_POST['id_groupe']); header('location:'.HTTP_PATH."users/"); }
En gros, dans la vue de modif des groupes, j'aimerais pouvoir afficher la valeur de l'id_user dans un input. Or je n'arrive pas à la récupérer. Par contre si j'entre manuellement les valeurs, c'est bien pris en compte dans la DB. Je n'arrive simplement pas à récupérer cet id...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function addGroupe($id_user, $id_groupe){ $db = new db_mysqli(); $query = "INSERT INTO droit VALUES ('".$id_user."','".$id_groupe."')"; $db->query($query); }
J'espère avoir été le plus clair possible,
Cordialement,
PS : je fais une connexion à ma db dans chaque fonction juste pour les tests.
Partager