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 :

Erreur incrément variable


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Par défaut Erreur incrément variable
    Bonjour à tous,

    Je génère un tableau grâce à ma base de données. Les lignes paires ont une couleur, les impaires en ont une autre, mais il y a aussi un spoiler qui s'affiche entre chaque ligne de ce tableau et qui possède une 3ème couleur.
    Pour ce faire j'ai utilisé (grâce à jreaux62) un compteur pour incrémenter la classe de ma balise <tr>. Elle vaut donc 1 ou 0 en fonction de la couleur. Voici mon code ça sera plus clair :

    Code php : 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
     
    <table class="tabletournee">
                <caption>Dates et lieux de la tournée 2017</caption>
     
                <!--<tr>
                    <th>VILLE</th>
                    <th>DATES</th>
                    <th>LIEU</th>
                    <th></th>
                </tr>-->
     
                    <?php
                        try
                        {
                            $bdd = new PDO('mysql:host=localhost;dbname=medrano2017;charset=utf8', 'root', '');
                            $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                        }
                        catch(Exception $e)
                        {
                            die('Erreur : '.$e->getMessage());
                        }
     
                        $reponse = $bdd->query('SELECT id_event,
                          id_tournee,
                          evenement.ville_event       AS ville,
                          evenement.lien_resa_event   AS lienresa,
                          evenement.adresse_event     AS adresse,
                          tournee.description_tournee AS descriptiontournee,
                          tournee.nom_tournee         AS nomtournee,
                          (SELECT MIN(s.dateheure_seance) FROM seance s WHERE s.id_event = evenement.id_event) AS premiereSeance,
                          (SELECT MAX(s.dateheure_seance) FROM seance s WHERE s.id_event = evenement.id_event) AS derniereSeance
                        FROM tournee
                        JOIN evenement USING(id_tournee)
                        ORDER BY premiereSeance,derniereSeance');
     
                        $datecourante = date('Y-m-d H:i:s');
     
                        while ($donnees = $reponse->fetch())
                        {
     
                        setlocale(LC_ALL, 'French', 'fr-FR.utf8','fra', 'fr-FR', 'fr_FR', 'fr', 'fr_FR@euro');
                        $datedebut = strftime("%d %B", strtotime($donnees['premiereSeance']));
                        $datefin = strftime("%d %B %Y", strtotime($donnees['derniereSeance']));
     
                        if( $donnees['derniereSeance'] >= $datecourante )
                        {
                    ?>
                        <tr class="infotournee infotournee<?php echo ($compteur%2); $compteur++; ?>">
                            <td><p style="color:white;" class="villetournee"><?php echo ''.$donnees['ville'].'';?></p> <p class="nomtournee"><?php echo ''.$donnees['nomtournee'].'';?></p></td>
                            <td><?php echo (strpos($datedebut,' '.$datefin))? 'Le '.utf8_encode($datedebut) : 'Du '.utf8_encode($datedebut).'<br/>au '.utf8_encode($datefin); ?></td>
                            <td><?php echo ''.$donnees['adresse'].'';?></td>
                            <td><a href="#spoiler<?php echo $donnees['id_event']; ?>" class="spoiler-link lienresa">PLUS D'INFOS</a><a class="lienresa" href="#">RESERVER</a></td>
                        </tr>
                        <tr>
                            <td colspan="4">
                                <div class="spoilers">
                                    <div class="spoiler" id="spoiler<?php echo $donnees['id_event']; ?>">
                                        <p><?php echo ''.utf8_encode($datedebut).'';?></p>
                                    </div>
                                </div>
                            </td>
                        </tr>
     
     
                    <?php
                        }
                        }
                            $reponse->closeCursor();
                    ?>
            </table>

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    table.tabletournee tr:not(.infotournee)
    {
      background-color:rgba(193,5,110,0.35);
    }
     
    table.tabletournee tr.infotournee0 /* Impaire */
    {
      background-color: rgba(193,5,110,0.75);
    }
     
    table.tabletournee tr.infotournee1
    {
      background-color: rgba(193,5,110,0.5);
    }

    Quand je valide et essaye ce code, j'ai une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined variable: compteur in C:\wamp\www\Medrano2017\index.php on line 72
    Or, quand je regarde le code généré malgré tout, l’incrément ce fait et mes classes portent bien les noms infotournee0 ou infotournee1.

    J'ai essayé de déclarer dans ma boucle la variable $compteur à 1 ou a 0, mais elle garde cette valeur tout au long de la lecture.

    Merci d'avance à vous tous !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    ce n'est pourtant pas bien compliqué : il faut initialiser le compteur au début !
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php $compteur = 0; ?>
    <table class="tabletournee">
    ...

    Par contre :
    • ($compteur%2) = 0 -> PAIR
    • ($compteur%2) = 1 -> IMPAIR

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Par défaut
    Ahhhhhhhh en effet... Merci !

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

Discussions similaires

  1. [VBA-E]erreur 91: variable objet ou variable de bloc With...
    Par cdk dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/03/2006, 14h19
  2. erreur de variable
    Par bobic dans le forum ASP
    Réponses: 8
    Dernier message: 15/11/2005, 11h20
  3. erreur déclaration variables
    Par bobic dans le forum ASP
    Réponses: 4
    Dernier message: 13/09/2005, 10h11
  4. Réponses: 1
    Dernier message: 19/08/2005, 12h33
  5. Incrémentation Variable
    Par Boujou dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 21/04/2005, 11h28

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