[RESOLU] Problème d'affichage des données dans un tableau HTML

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème d'affichage des données dans un tableau HTML

Re: Problème d'affichage des données dans un tableau HTML

par davlongin » 11 janv. 2023, 00:34

je crois que je viens de comprendre pour pouvoir manipuler le résultat du fetchAll je dois le mettre dans une variable comme ceci :
$result = $products->fetchAll(PDO::FETCH_OBJ);
Grâce à tes questions t'a pu éclaircir mes idées. Merci bcp !

Re: Problème d'affichage des données dans un tableau HTML

par or 1 » 10 janv. 2023, 23:46

relisez votre code.
et si vous ne trouvez pas, toujours comparer à l'exemple de la doc.

Re: Problème d'affichage des données dans un tableau HTML

par davlongin » 10 janv. 2023, 23:41

Comment ça ?

Re: Problème d'affichage des données dans un tableau HTML

par or 1 » 10 janv. 2023, 23:39

non, vous ne faites pas cela du retour de fetchAll

Re: Problème d'affichage des données dans un tableau HTML

par davlongin » 10 janv. 2023, 23:36

Les lignes récupérées sont transformés en objet pour que je puisse plus facilement les utiliser pour afficher les données dont j'ai besoin, je l'ai fait mais au final rien n'a été affiché.

Re: Problème d'affichage des données dans un tableau HTML

par or 1 » 10 janv. 2023, 23:29

que faites-vous de ce retour ?

Re: Problème d'affichage des données dans un tableau HTML

par davlongin » 10 janv. 2023, 23:27

La fonction retourne un tableau de résultat contenant toutes les lignes d'enregistrements de la requête préparée.

En gros la fonction retourne un tableau associatif.

Re: Problème d'affichage des données dans un tableau HTML

par or 1 » 10 janv. 2023, 23:20

que fait la fonction fetchAll ?

Re: Problème d'affichage des données dans un tableau HTML

par davlongin » 10 janv. 2023, 23:16

Je l'avais mis en commentaire dsl. Et oui je l'ai décommenter et j'obtiens un résultat.

Voici le résultat :
<tbody>
                        <br>
PDOStatement Object
(
    [queryString] => SELECT id, image, nom, prix FROM produits WHERE id IN(8,7)
)
<br>
Array
(
    [0] => 8
    [1] => 7
)
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td><strong>Total</strong></td>
                            <td class="text-right"><strong>346,90 €</strong></td>
                        </tr>
                    </tbody>

Re: Problème d'affichage des données dans un tableau HTML

par or 1 » 10 janv. 2023, 22:58

et
echo "<br>";
print_r($products);
echo "<br>";
print_r($ids);
?

Re: Problème d'affichage des données dans un tableau HTML

par davlongin » 10 janv. 2023, 22:53

Le contenu de ma boucle foreach n'est pas généré.
Je n'ai pas mis le header ni le footer vu que ce n'est pas utile pour le contexte.

Voici le contenu généré :
<div class="container mb-4">
    <div class="row">
        <div class="col-12">
            <div class="table-responsive">
                <table class="table table-striped">
                    <thead>
                        <tr>
                            <th scope="col"></th>
                            <th scope="col">Produit</th>
                            <th scope="col" class="text-center">Quantité</th>
                            <th scope="col" class="text-right">Prix</th>
                            <th> </th>
                        </tr>
                    </thead>
                    <tbody>
                                                <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td><strong>Total</strong></td>
                            <td class="text-right"><strong>346,90 €</strong></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
        <div class="col mb-2">
            <div class="row">
                <div class="col-sm-12  col-md-6">
                    <a href="index.php"><button class="btn btn-block btn-light">Liste des produits</button></a>
                </div>
                <div class="col-sm-12 col-md-6 text-right">
                    <button class="btn btn-block btn-light">Valider</button>
                </div>
            </div>
        </div>
    </div>
</div>

Re: Problème d'affichage des données dans un tableau HTML

par or 1 » 10 janv. 2023, 19:12

quel est le code html généré par ce php ? (ctrl + u pour voir la source)

Problème d'affichage des données dans un tableau HTML

par davlongin » 10 janv. 2023, 18:40

Bonjour,

Je n'ai pas d'erreur quand je lance la page de mon projet (panier.php), mais les données n'apparaissent pas dans les lignes du tableau HTML. Pourtant quand je rentre la requête dans mon logiciel de base données, il n'y a pas d'erreur.
Le problème doit venir de ma bouclee mais je ne sais pas exactement ce qui ne va pas.

J'espère que vous pourrez m'aider.

Merci d'avance

Voici le code de la page (panier.php) :
<?php
    include("header.php");
    require("config/commandes.php");
    require("config/connexion.php");

    if(!isset($_SESSION)){
        session_start();
    }
    if(!isset($_SESSION["panier"])){
        $_SESSION['panier'] = array();
    }
    var_dump($_SESSION);
    // unset($_SESSION["panier"]);
?>
<div class="container mb-4">
    <div class="row">
        <div class="col-12">
            <div class="table-responsive">
                <table class="table table-striped">
                    <thead>
                        <tr>
                            <th scope="col"></th>
                            <th scope="col">Produit</th>
                            <th scope="col" class="text-center">Quantité</th>
                            <th scope="col" class="text-right">Prix</th>
                            <th> </th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php
                            $ids = array_keys($_SESSION["panier"]);
                            $products = $access->prepare('SELECT id, image, nom, prix FROM produits WHERE id IN('.implode(',',$ids).')');
                            $products->execute();
                            $products->fetchAll(PDO::FETCH_OBJ);
                            echo "<br>";
                            print_r($products);
                            echo "<br>";
                            print_r($ids);
                            foreach($products as $product): 
                        ?>
                        <tr>
                            <td><img src="<?= $product->image ?>" style="width: 15%"></td>
                            <td><?= $product->nom ?></td>
                            <td><input class="form-control" type="text" value="1" />1</td>
                            <td class="text-right"><?= $product->prix ?>€</td>
                            <td class="text-right"><button class="btn btn-sm btn-danger">Supprimer</button> </td>
                        </tr>
                        <?php endforeach; ?>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td><strong>Total</strong></td>
                            <td class="text-right"><strong>346,90 €</strong></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
        <div class="col mb-2">
            <div class="row">
                <div class="col-sm-12  col-md-6">
                    <a href="index.php"><button class="btn btn-block btn-light">Liste des produits</button></a>
                </div>
                <div class="col-sm-12 col-md-6 text-right">
                    <button class="btn btn-block btn-light">Valider</button>
                </div>
            </div>
        </div>
    </div>
</div>
<?php
    require("footer.php");
?>