Bonjour à toute et à tous,
J'ai un petit problème concernant un petit programme que j'effectue pour mon stage et je n'arrive pas à me déboguer.
Voici problème.

J'ai un MVC qui effectue un affichage de mes membres de ma BDD (ce code fonctionne), mais mon problème est que lorsque je veux sélectionner un membre pour le modifier, je n'arrive pas à faire ma redirection vers une autre page qui me reprend les informations en fonction de l'ID.

Voici mon code :

Mon Modèle : ManageMembres.php

<?php
//CE FICHIER EST LE MODELE
require_once '../controller/connect.php';
function getMembre()
{
        $connexion = Connexion::getInstance();
        $sql = $connexion->prepare("SELECT * from ps_membre order by id_membre DESC");
        $sql->execute(array()); 
        $req = $sql->fetchAll(PDO::FETCH_OBJ); //retourne les membres de ma base
        return $req;
}

function selectMesMembresById()
{           
            $id=$_GET'id'];
            $connexion = Connexion::getInstance();
            $sql = $connexion->prepare("SELECT * from ps_membre where id_membre=".$id);
            $sql->execute(array());
            $select = $sql->fetchAll(PDO::FETCH_OBJ); //selectionne les membres en fonction de l'id
            return $select;   
}

Mon Controller : ControlleMesMembres.php

<?php
//CE FICHIER EST LE CONTROLLER
require_once'../model/ManageMembres.php';
require_once'loadingView.php';
class ControlleMesMembres{
    public static function getMesMembres()
   {    
            $twig = new loadingView();
            $twig= loadingView::loadTwigAdmin();
            $twig->addGlobal('afficheMembres',new ControlleMesMembres());
            echo $twig->render('VoirMesMembres.html.twig', array(
            'membre' => getMembre(),
            'tri' => triMembres(),    
                )); 

            echo"Voici la fonction getMesMembres!!";
   }

   public static function selectMembreById()
    {
        $twig = new loadingView();
        $twig= loadingView::loadTwigAdmin();
        $twig->addGlobal('select',new ControlleMesMembres());
        echo $twig->render('recupMesMembres.html.twig', array(
            'affiche' => selectMesMembresById(),
                )); 
        echo"Voici la methode selectMembreById";
    }  

}
var_dump(selectMesMembresById());
ControlleMesMembres::getMesMembres();
//ControlleMesMembres::selectMembreById();

et mes vues : VoirMesMembres.html.twig (ci fichier récupère juste mes membres de la base)

<tbody>
                        {% if afficheMembres.getMesMembres() is defined%}
                                {% for rs in membre %}
                        <div class="col-xs-12 col-md-4 col-sm-6">
                            <tr>
                                <td>{{rs.nom_membre}}</td>
                                <td>{{rs.prenom_membre}}</td>
                                <td>{{rs.ville_membre}}</td>
                                <td>{{rs.pays_membre}}</td>
                                <td>{{rs.email_membre}}</td>
                                <td><a href="../controller/affichePDF.php?id={{rs.id_membre}}"><img src="../img/logo/icone/pdf.gif"></a></td>
                                <strong><td><a href="../controller/ControlleMesMembres.php?id={{rs.id_membre}}"><img src="../img/logo/icone/edit.png"></a></td></strong>
                                <td><a href="../controller/deleteMembres.php?id={{rs.id_membre}}"><img src="../img/logo/icone/croix.png"></a></td>
                            </tr>    
                        </div>
                    {% endfor %} 
                    {%else%}
                       PROBLEME
                    {%endif%}
                      </tbody>

En gras le lien pour sélectionner un membres pour le modifier.

cette vue ci : recupMsMembres.html.twig ( dois récupérer un membre précis)

{%if affiche.selectMembreById() is defined%}
                {% for rs in affiche %}
                    <form action="../controller/modifMembre.php?id={{rs.id_membre}}" method="POST">
                            <label><input name="nom" type="text" value="{{rs.nom_membre}}"></label>
                            <label><input name="prenom" type="text" value="{{rs.prenom_membre}}"></label>
                            <label><input name="date" type="text" value="{{rs.date_naissance}}" ></label>
                            <label><input name="code" type="text" value="{{rs.cp_membre}}"></label>
                            <label><input name="adresse" style="width:300px" type="text" value="{{rs.adresse_membre}}"></label>
                            <label><input name="ville" type="text" value="{{rs.ville_membre}}"></label>
                            <label><input name="pays" type="text" value="{{rs.pays_membre}}"></label>  
                            <label><input name="tel" type="text" value="{{rs.tel_membre}}"></label>  
                            <label><input name="email" style="width:300px" type="text" value="{{rs.email_membre}}"></label>   
                            <button type="submit" name="modifier" class="btn btn-success">Modifier</button>
                        </form>    
                      {% endfor %} 
            {%endif%}

Je sais que mon controller ne fais pas d'instance de la deuxième fonction car si je la fais, la page se répète 2fois.

J'espère que j'ai été précis et que vous pourrez me dépanner.
Merci beaucoup

2 réponses


Désolé pour les question bêtes. Mais est-ce qu'il récupère bien l'id quand tu clique sur ton lien, si oui est-ce que les informations du membre sont bien récupérer dans "affiche" ?

Sinon je vois pas de soucis dans le code

Oui il récupère tout ce que je veux, mais le seul problème est que lorsque je veux récupérer les informations du membre mais dans la page recupMesMembres.html.twig. je n'ai pas la redirection établi par la fonction mais les information je les voient grâce à un var_dump que j'effectue dans mon controlleur sur la fonction

var_dump(selectMesMembresById());

ça me renvoi bien :

array (size=1)
  0 => 
    object(stdClass)[4]
      public 'id_membre' => string '21' (length=2)
      public 'nom_membre' => string 'PALERMO' (length=7)
      public 'prenom_membre' => string 'ANTHONY' (length=7)
      public 'date_naissance' => string '1992-02-24' (length=10)
      public 'cp_membre' => string '57000' (length=5)
      public 'adresse_membre' => string '46 BIS RUE AUX ARENES' (length=21)
      public 'ville_membre' => string 'METZ' (length=4)
      public 'pays_membre' => string 'FRANCE' (length=6)
      public 'tel_membre' => string '387857380' (length=9)
      public 'email_membre' => string 'tototest0@gmail.com' (length=26)
      public 'password' => string 'admin' (length=5)
      public 'role_id' => string '2' (length=1)

mais sans var_dump je n'ai rien d'affiché