IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Mes variables sont vides dans mon HTML et pas dans mon PHP


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 85
    Points
    85
    Par défaut Mes variables sont vides dans mon HTML et pas dans mon PHP
    Bonjour à tous,

    J'ai une requête simple, le tout fonctionnait avant mais pour une raison que je ne comprend pas plus rien ne s'affiche.

    Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try {
        // Récupérer les abonnements
        $req = "SELECT * FROM abonnements ORDER BY ID_Abonnement";
        $stmt = $pdo->query($req);
        $row = $stmt->fetchAll(PDO::FETCH_ASSOC);
     
    } catch (PDOException $e) {
        $mess_err = "Erreur lors de la récupération des abonnements : " . $e->getMessage();
    }
    La partie HTML est comme suit :

    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
     
                <?php if (!empty($row)) { ?>
                    <section class="abonnements">
                        <div class="abonnements_titre left">Nom</div>
                        <div class="abonnements_titre">Description</div>
                        <div class="abonnements_titre">Prix</div>
                        <div class="abonnements_titre">TYPE</div>
                        <div class="abonnements_titre">Nombre</div>
                        <div class="abonnements_titre">Action</div>
     
                        <?php foreach ($row as $abonnements) { ?>
                            <div class="left"><?= htmlspecialchars($abonnements['nomabonnement'], ENT_QUOTES, 'UTF-8'); ?></div>
                            <div><?= htmlspecialchars($abonnements['description'], ENT_QUOTES, 'UTF-8'); ?></div>
                            <div><?= htmlspecialchars($abonnements['prix'], ENT_QUOTES, 'UTF-8'); ?> $</div>
                            <div><?= htmlspecialchars($abonnements['TYPE'], ENT_QUOTES, 'UTF-8'); ?></div>
                            <div><?= htmlspecialchars($abonnements['nbre_personne'], ENT_QUOTES, 'UTF-8'); ?></div>
                            <div>
                                <a href="abonnements-modifier.php?ID_Abonnement=<?= htmlspecialchars($abonnements['ID_Abonnement'], ENT_QUOTES, 'UTF-8'); ?>">Modifier</a> / 
                                <a href="abonnements-effacer.php?ID_Abonnement=<?= htmlspecialchars($abonnements['ID_Abonnement'], ENT_QUOTES, 'UTF-8'); ?>">Effacer</a>
                            </div>
                        <?php } ?>
                    </section>
                <?php } ?>
    Si je fais un var_dump dans la partie PHP du code, j'ai un résultat. Mais le foreach est vide, je n'ai absolument rien.

    J'avais une autre page, et pour réussir a avoir mon affichage, il a fallu que je place mon résultat dans des variables de $_SESSION

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 266
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 266
    Points : 8 564
    Points
    8 564
    Billets dans le blog
    17
    Par défaut
    Si je fais un var_dump dans la partie PHP du code, j'ai un résultat.
    Un var_dump() de quoi ?

    Mais le foreach est vide, je n'ai absolument rien.
    Quelque chose vide $row entre les partie du script.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Un var_dump() de quoi ?
    Un var_dump de $row dans la partie PHP ou tout mon résultat est la.

    Mais dans la bouche foreach je n'ai absolument rien qui s'affiche.

    Les titres de mes colonnes y sont, mais apres rien.

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 266
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 266
    Points : 8 564
    Points
    8 564
    Billets dans le blog
    17
    Par défaut
    Quelque chose doit vider $row entre les 2 parties du script.

    Essaie de donner un nom moins générique et plus pertinent à $row. Cela réduira les risques de collision.


    Typiquement tu devrais plutôt avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $abonnements = $pdo->query($sql)->fetchAll();
    ...
    <?php foreach ($abonnements as $row) { ?>

    Sinon trace l'utilisation de $row.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 85
    Points
    85
    Par défaut
    Merci avec les deux lignes que tu m'as fournies, ça fonctionne.

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 266
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 266
    Points : 8 564
    Points
    8 564
    Billets dans le blog
    17
    Par défaut
    C'était donc bien parce que $row était réutilisé entre temps
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  7. #7
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Séb. Voir le message
    C'était donc bien parce que $row était réutilisé entre temps
    Je ne vois pas d'autres explications, le code n'est pas énormément gros et je ne vois pas la variable $row ailleurs.

    Mais je vais suivre ton conseil et mieux nommer mes variables afin d'eviter des confusions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/02/2020, 11h59
  2. Variable récupéré vide dans une seconde classe
    Par black9ken dans le forum Android
    Réponses: 3
    Dernier message: 28/03/2019, 09h07
  3. Réponses: 12
    Dernier message: 11/04/2006, 18h00
  4. Réponses: 8
    Dernier message: 25/02/2006, 18h31
  5. Mes dates sont inversées dans word
    Par Tibao27 dans le forum Access
    Réponses: 5
    Dernier message: 15/02/2006, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo