Bonjour,

Aprés plusieurs essais je me résoue à demander de l'aide

Je voudrais afficher que la liste des articles à la connexion à la page et sur cette même page un article quand je veux le modifié avec la liste des articles.

code la page:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
if (isset($message))
{
  echo $message, '<br />';
}
?>              
        <?php if(isset($erreurs) && in_array(Billets::TITRE_INVALIDE, $erreurs)) echo 'Le titre est invalide.<br />'; ?>
        Titre : <input type="text" name="titre" value="<?php if (isset($billets)) echo $billets->titre(); ?>" /><br />
 
        <?php if (isset($erreurs) && in_array(Billets::CONTENU_INVALIDE, $erreurs)) echo 'Le contenu est invalide.<br />'; ?>
        Contenu :<br /><textarea id="formulaire" type="text" name="contenu"><?php if (isset($billet)) echo $billets->contenu(); ?></textarea><br />
<?php
if(isset($billet) && !$billet->isNew())
{
?>
        <input type="hidden" name="id" value="<?= $billet->id() ?>" />
        <input type="submit" value="Modifier" name="modifier" />
<?php
}
else
{
?>
        <input type="submit" value="Ajouter" />
<?php
}
 
?>
    </p>
    </form>
 
    <p style="text-align: center">Il y a actuellement <?= $billetCount ?> billets. En voici la liste :</p>
 
    <table>
      <tr><th>Titre</th><th>Date d'ajout</th><th>Dernière modification</th><th>Action</th></tr>
<?php
        foreach($billetList as $billets){
             $date1 = date('d/m/y à H:i:s', strtotime($billets->dateAjout()));
             $date2 = date('d/m/y à H:i:s', strtotime($billets->dateModif()));      
             echo '<tr><td>',$billets->titre(), '</td><td>', $date1, '</td><td>', ($date1 == $date2 ? '-' : $date2),
                  '</td><td><a href="index.php?modifier='. $billets->id(),  '">Modifier</a> | <a href="index.php?supprimer='. $billets->id(),  '">Supprimer</a></td></tr>', "\n";
 
        }                  
        ?>   
    </table>         
</body>
</html>
Le modèle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
class BilletsManager
{
    private $db; 
 
    public function __construct(PDO $db)
    {
       $this->db = $db;
    }
    public function add(Billets $billets)
    {
    $q = $this->db->prepare('INSERT INTO billets(titre, contenu, dateAjout, dateModif) VALUES(:titre, :contenu, NOW(), NOW())');
 
    $q->bindValue(':titre', $billets->titre());
    $q->bindValue(':contenu', $billets->contenu());
 
    $q->execute();    
    }
    public function delete($id)
    {
    $this->db->exec('DELETE FROM news WHERE id = '.(int) $id);
    }
    public function count()
    {     
        return $this->db->query('SELECT COUNT(*) FROM billets')->fetchColumn();   
 
    }
    public function getList($debut = -1, $limite = -1)
    {
        $sql = 'SELECT id, titre, contenu, dateAjout, dateModif FROM billets ORDER BY id DESC';
 
        if ($debut != -1 || $limite != -1)
        {
            $sql .= ' LIMIT '.(int) $limite.' OFFSET '.(int) $debut;
        }
        $q = $this->db->query($sql);               
 
        $listeBillets = $q->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'App\Objet\Billets');          
 
        $q->closeCursor(); 
 
        return $listeBillets;                 
    }
    public function getUnique($id)
    {        
        $q = $this->db->prepare('SELECT id, titre, contenu, dateAjout, dateModif FROM billets WHERE id =:id');
 
        $q->bindValue(':id', (int) $id, PDO::PARAM_INT);
        $q->execute();      
 
        $billets = $q->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'App\Objet\Billets');         
 
        return $billets;
    }
    protected function update(Billets $billets)
    {
        $q = $this->db->prepare('UPDATE billets SET titre = :titre, contenu = :contenu, dateModif = NOW() WHERE id = :id');
 
        $q->bindValue(':titre', $billets->titre());
        $q->bindValue(':contenu', $billets->contenu());
        $q->bindValue(':id', $billets->id(), PDO::PARAM_INT);
 
        $q->execute();
    }
    public function save(Billets $billets)
    {
        if ($billets->isValid())
        {
            $billets->isNew() ? $this->add($billets) : $this->update($billets);
        }
        else
        {
            throw new RuntimeException('Le billet doit être valide pour être enregistré');
        }
    }
}    
?>
Le contrôleur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
<?php
namespace App\Controller;
use PDO;
use App\Objet\Billets;
use App\Objet\Connect;
use App\Model\BilletsManager;
require 'Librairies/Objet/Connect.php';
 
class BilletController{     
 
       public function list(){       
              $db = Connect::getPDO();            
              $manager = new BilletsManager($db);
              $billetList = $manager->getList(0, 5);                       
 
              chdir('Librairies/View');
              include('HomeView.php'); 
       }
       public function unique(){       
              $db = Connect::getPDO();    
              $manager = new BilletsManager($db);       
              $billetId = $manager->getUnique((int)$_GET['id']); 
 
              chdir('Librairies/View');
              include('BilletView.php');         
       }
       public function adminList(){       
              $db = Connect::getPDO();  
              $manager = new BilletsManager($db);       
              $billetList = $manager->getList();            ;          
              $billetCount = $manager->count();           
 
              chdir('Librairies/View');
              include('AdminView.php');                    
       }       
       public function adminChange($billets){       
              $db = Connect::getPDO();  
              $manager = new BilletsManager($db);       
              $billetUnique = $manager->getUnique($billets);  
 
              $billetCount = $manager->count();   
 
              chdir('Librairies/View');
              include('AdminView.php');                
       }
       public function save($billets){
              $db = Connect::getPDO(); 
              $manager = new BilletsManager($db);             
              $manager->save($billets);                              
 
              chdir('Librairies/View');
              include('AdminView.php'); 
       }
       public function delete($id){
              $db = Connect::getPDO();    
              $manager = new BilletsManager($db); 
              $manager->delete($id);               
 
              chdir('Librairies/View');
              include('AdminView.php'); 
       }
}
Avec les tests que j'ai fais, soit j'ai une liste qui ce met sur l'article à modifié et la liste en plus. Soit le billet que je veux modifier + l'affiche du même billet à la place de la liste. Soit variable non défini pour le billet que je veux modifier. Soit variable non défini pour la liste.

Merci pour votre aide.