8786 sujets

Développement web côté serveur, CMS

$sth = $conn->prepare("SELECT date, titre, auteur, contenu FROM article WHERE contenu = 'post.html'");
$sth-> execute();
$resultat = $sth->fetchAll(PDO::FETCH_ASSOC);

Dans cet exemple le fichier 'post.html' (avec le format Bootstrap) se trouve à l'emplacement $resultat[3]
Quelle commande utiliser pour qu'un utilisateur puisse le visualiser dans son navigateur ?

Merci de votre aide...
Modifié par eraxiii (18 Mar 2025 - 13:15)
Hmmmm... pas sur d'avoir compris la question.

Tu veux visualiser quoi ?
Le contenue de ton $resultat[3] ?
Le contenu du contenue qui se trouve dans $resultat[3] ?
tu veux afficher le contenu d'un fichier dans un autre du coup ?
tu veux redirigé l'utilisateur vers le fichier ? l'inclure dans la page actuel ?
Modérateur
bonjour .....

À quoi bon utiliser la méthode PDO::prepare() sans réellement l'utiliser.

N'ayant pas de contexte précis, pourquoi envoyer post.html en base de données ?
je souhaiterais pouvoir afficher la page 'post.html' dans le navigateur de l'utilisateur.
Merci pour votre réponse
$sth = $conn->prepare("SELECT date, titre, auteur, contenu FROM article WHERE contenu = 'post.html'");
$sth-> execute();
$resultat = $sth->fetchAll(PDO::FETCH_ASSOC);


readfile($resultat[3]);

C'est bien cette commande à ajouter pour visualiser une page html avec le fichier 'post.html' ?
Modérateur
JENCAL a écrit :


Pour quoi faire ? Smiley biggol


C'est vrai finalement. Soyons des sauvageons ! Smiley lol

@eraxii :
Pourquoi "article.contenu" soit égale à = post.html ? Comme je l'ai indiqué, tu n'utilises pas bien la méthode PDO::prepare(). Tel que tu l'utilises, ça ne sert à rien.
Modifié par niuxe (18 Mar 2025 - 17:18)
j'ai une bdd qui à 5 colonnes : id, date, titre, auteur et contenu.
La colonne contenu contient un fichier html.

Quand un utilisateur clic sur le lien d'un article de la liste des articles issue de la bdd, la page html de la bdd concernée s'affiche.
MERCI !
Modérateur
Bah non.... Tu dois avoir une vue HTML et tu dynamises avec ce que te donne la base de données.

l'action de récupérer tes données¹ :

<?php
$dsn = "...";
$user = "...";
$password = "...";
$db = new PDO($dsn, $user, $password);

function get_post($db, $id){
    $query = "
        SELECT 
            date, 
            titre, 
            auteur,
            contenu
        FROM 
            article
        WHERE 
            id = :id
    ";

    $statement = $db->prepare($query);
    $statement->execute([
        'id' => $id
    ]);    
    $data = current($statement->fetcheAll(PDO::FETCH_OBJ));

    $source_view = '/chemin/vers/post.html';
    $view = file_get_contents($source_view);

    echo $view;
}

get_post($db, $_GET['id']);
?>


ta vue HTML (qui est un fichier PHP puisque tu développes avec ce langage sans moteur de template comme SMARTY ou TWIG):

<article>
    <h1><?= $data->titre ?></h1>
    <p>
        <small><em><?= $data->auteur ?> - <?= date("d/M/Y", $data->date) ?></em></small>
    </p>
    <div class="body">
        <?= $data->contenu ?>
    </div>
</article>


_____
¹ ça fait un moment que je ne code plus en PHP. J'ai peut-être fait des erreurs. Mais l'idée est là.
Modifié par niuxe (18 Mar 2025 - 20:01)