8710 sujets

Développement web côté serveur, CMS

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>
                                [#red]<td><a href="../controller/ControlleMesMembres.php?id={{rs.id_membre}}"><img src="../img/logo/icone/edit.png"></a></td> [/#]
 <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 rouge 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 je n'ai pas fais d'instance de la 2ème méthode dans le controller car si je la fais, le contenu de 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
Salut,

Est ce que tu ne devrais pas tout simplement rajouter un test dans ton controller à ce niveau :

ControlleMesMembres::getMesMembres();
//ControlleMesMembres::selectMembreById();


Tu test si la variable $_GET["id"] existe, si non tu execute :
ControlleMesMembres::getMesMembres();


Si elle existe c'est que tu as bien passé l'id dans l'URL avec ton lien edit et dans ce cas tu execute :
ControlleMesMembres::selectMembreById();