PHP

Problème d'id d'article

Résolu

Bonjour,


Alors voici mon petit problème, j'ai créer une page blog où assembler tous les articles (logique) mais quand je clique sur l'articles que je veux lire il me dirige vers le dernier articles rédigé alors que ça l'est pas. Pourtant que je survol chaque articles dans ma page "Blog" les ID corresponde bien à l'article associer. Je suis pas sûr me faire trop comprendre alors voici une image :




à savoir que l'ID de l'article "erytu" est 33


Et si je mets la condition :


if (empty($get_id)) {
    header('Location: /f_blog/blog.php');
    exit;
    # code...
  }


rien ne se passe.


voici mon code PHP du blog.php


<?php
  session_start();
  include('../bd/connexionDB.php');

  $req = $DB->query("SELECT b.*, u.prenom, u.nom, c.titre as titre_cat
    FROM blog b
    LEFT JOIN utilisateur u ON u.id = b.id_user
    LEFT JOIN categorie c ON c.id_categorie = b.id_categorie
    ORDER BY b.date_creation DESC");

  $req = $req->fetchAll();
?>


voici mon code HTML du blog.php


<body>
        <?php
        require_once('../menu.php');
        ?>  
        <br>
        <h1 class="text-center">Articles</h1>
        <br>
        <div class="containernews">
        <div class="row">


            <?php
              foreach($req as $r){ 
              ?> 


        <div class="col-md-4 col-sm-8">
        <a href="voir_article.php/<?= $r['id'] ?>" class="card" >
            <img class="card-img-top" src="../img/posts/<?= $r['minia'] ?>" alt="Card image cap">
            <div class="card-body">
                <p><?= $r['titre'] ?></p>
            </div>
            </a>
        </div>
              <?php
              }
            ?>
            
</div>


Voici le code PHP du voir_article.php


<?php
    session_start();


    include('../bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD


    $get_id = (int) trim($_GET['id']);


    if (empty($get_id)) {
        header('Location: /f_blog/blog.php');
        exit;
        # code...
    }


    $req = $DB->query("SELECT b.*, u.prenom, u.nom, c.titre as titre_cat
        FROM blog b
        LEFT JOIN utilisateur u ON u.id = b.id_user
        LEFT JOIN categorie c ON c.id_categorie = b.id_categorie
        ORDER BY b.date_creation",
        array($get_id));


    $req = $req->fetch();
?>


Voici mon code HTML de mon voir_article.php


<body>


        <?php
        require_once('../menu.php');
        ?>  
        
        <div class="container">


            <img src="../img/posts/<?= $r['minia'] ?>">


            <div class="row" style="margin-top: 20px">  


                <div class="col-sm-12 col-md-12 col-lg-12">                 


                    <div style="margin-top: 20px; background: white; box-shadow: 0 5px 10px rgba(0, 0, 0, .09); padding: 5px 10px; border-radius: 10px">
                        <h1 style="color: #666; text-decoration: none; font-size: 28px;"><?= $req['titre'] ?></h1>
                        <div style="border-top: 2px solid #EEE; padding: 15px 0">
                            <?= nl2br($req['text']); ?>
                        </div>
                    </div>
                </div>
            </div>
        </div>


J'avoue ne plus savoir quoi modifier pour régler le problème, j'ai regarder les tutos plusieurs mais rien.


Merci d'avance et bonne journée.

669 vues
09 août 2020 à 1:03 (Édité)
Cette pub permet au site de vivre ...
Compte-supprimé
Le 08 Août 2020 à 22:43 (Édité)

C'est bon j'ai résolu le problème en faites il était marqué dans mon PHP voir_article.php


<?php
    session_start();


    include('../bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD


    $get_id = (int) trim($_GET['id']);


    if (empty($get_id)) {
        header('Location: /f_blog/blog.php');
        exit;
        # code...
    }


    $req = $DB->query("SELECT b.*, u.prenom, u.nom, c.titre as titre_cat
        FROM blog b
        LEFT JOIN utilisateur u ON u.id = b.id_user
        LEFT JOIN categorie c ON c.id_categorie = b.id_categorie
        ORDER BY b.date_creation",
        array($get_id));


    $req = $req->fetch();
?>


au lieu de


<?php
    session_start();


    include('../bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD


    $get_id = (int) trim($_GET['id']);


    if (empty($get_id)) {
        header('Location: /f_blog/blog.php');
        exit;
        # code...
    }


    $req = $DB->query("SELECT b.*, u.prenom, u.nom
        FROM blog b
        LEFT JOIN utilisateur u ON u.id = b.id_user
        WHERE b.id = ?
        ORDER BY b.date_creation",
        array($get_id));


    $req = $req->fetch();
?>


Merci quand même de m'avoir aider.


Bonne journée

Cette pub permet au site de vivre ...

4 commentaires

C'est bon j'ai résolu le problème en faites il était marqué dans mon PHP voir_article.php


<?php
    session_start();


    include('../bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD


    $get_id = (int) trim($_GET['id']);


    if (empty($get_id)) {
        header('Location: /f_blog/blog.php');
        exit;
        # code...
    }


    $req = $DB->query("SELECT b.*, u.prenom, u.nom, c.titre as titre_cat
        FROM blog b
        LEFT JOIN utilisateur u ON u.id = b.id_user
        LEFT JOIN categorie c ON c.id_categorie = b.id_categorie
        ORDER BY b.date_creation",
        array($get_id));


    $req = $req->fetch();
?>


au lieu de


<?php
    session_start();


    include('../bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD


    $get_id = (int) trim($_GET['id']);


    if (empty($get_id)) {
        header('Location: /f_blog/blog.php');
        exit;
        # code...
    }


    $req = $DB->query("SELECT b.*, u.prenom, u.nom
        FROM blog b
        LEFT JOIN utilisateur u ON u.id = b.id_user
        WHERE b.id = ?
        ORDER BY b.date_creation",
        array($get_id));


    $req = $req->fetch();
?>


Merci quand même de m'avoir aider.


Bonne journée

Ah non maintenant pour je ne sais quelle raison, il me dirige vers le lien de l'articles mais m'affiche la page "Blog" un peu bugger.

Bonjour @Jerem971


Voilà j'ai mis les chemins en absolus, il me mets des erreurs car il trouve pas ce que je lui demande.


J'ai rewrite les url et il ne trouve pas l'article.

Hello @cero,


Quelques informations :


  • La balise [CITATION] permet de citer des choses, utilise-là seulement si tu veux citer quelque chose (en savoir plus...) 😉
  • Dorénavant tu posteras tes images sur GooPics et rien d'autres ! (en savoir plus...)


Pour ton problème :


Je te conseille d'utiliser uniquement les chemins absolus (voir cet article) et cet article 😉

Cette pub permet au site de vivre ...