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

Langage PHP Discussion :

Surligne ligne avec condition


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Surligne ligne avec condition
    Bonjour a tous!!!

    Je bloque sur un petit probleme:

    J'ai un tableau dans lequel on rentre des stats régulierement et j'aimerai que la personne qui n'est pas rentré ses stats au bout d'une semaine soit surligné en rouge.

    J'ai une colonne MAJ, dans lequel s'affiche automatiquement la date du jour des qu'il valide ses nouvelles stats.

    J'arrive a enregistrer la date dans ma BDD avec la fonction NOW()
    Le probleme c'est que maintenant j'ai voulu réutiliser la fonction NOW() dans une requete mais ca ne fonctionne pas, ca me met que NOW() n'est pas définie.

    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
    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
    <?php
     
    // Fonction pour construire une table à partir des résultat de la requête
    function buildClodoTable($where='') {
     
        // Ajouter la clause where si définie (par défaut, tout le temps)
     
     
        // Construire la requete
        $query = "SELECT Clodo,ATT,DEF,Fightvalue,habilite,Attaque,defense,MAJ FROM stats WHERE Type='Equipier' ORDER BY Id DESC ";
     
        // Executer la requete
        $result = mysql_query($query);
     if ($result==false) {
     
        }
        $lines = '';
        while ($row = mysql_fetch_array($result)) {
     
     
         $date2 = new DateTime($row['MAJ']);
     
    if(date_diff($date2,Now()) >= 7) $style = 'background-color:red';
    else $style = '';
     
     
        $lines .= '
        <tr style="'.$style.'">
            <td>'.$row['Clodo'].'</td>
            <td>'.$row['ATT'].'</td>
            <td>'.$row['DEF'].'</td>
          <td>'.$row['Fightvalue'].'</td>
            <td>'.$row['habilite'].'</td>
            <td>'.$row['Attaque'].'</td>
            <td>'.$row['defense'].'</td>
        <td>'.$row['MAJ'].'</td>
     
        </tr>';
        }
        return '
    <table border="1" cellpadding=5 cellspacing=5 height=50>
        <tr>
            <th class="name"> Nom clodo </th>
            <th> ATT </th>
            <th> DEF </th>
          <th> Fightvalue </th>
            <th> habilité </th>
            <th> attaque </th>
            <th> défense </th>
          <th> MAJ </th>
     
        </tr>'.$lines.'
    </table>';
    }
     
     //Construire le tableau à partir du résultat de la requête
        $table = buildClodoTable("");
     
        echo $table; 
    ?>
    Merci de votre aide

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(date_diff($date2,Now()) >= 7) $style = 'background-color:red';
    La fonction PHP now( ) n'existe pas.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    Points : 608
    Points
    608
    Par défaut
    Tu ne l'utilises pas dans une requête SQL mais directement comme une fonction PHP, qui n'existe évidement pas...

    Le mieux dans ce cas est d'ajouter un champ supplémentaire à ton select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ......, TO_DAYS(NOW()) - TO_DAYS(MAJ) as lastMaj FROM ....
    ce nouveau champs contiendra le nombre de jours depuis la dernière mise à jour.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    ok merci j'avais deja pensé a cette solution mais je pensais que ca aurait ete plus simple!

    Je vais essayer demain

    Si a tout hasard quelqu'un aurait la patience de m'apprendre les fonctions avec les dates je suis preneur car j'ai du mal.

    Merci

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    J'ai trouvé mon code

    Voici mon code si ca peut aider quelqu'un

    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
     
     
     // Construire la requete
    $query = "SELECT clodo,att,def,fightvalue,habilite,attaque,defense,maj, date_format(maj,'%Y-%m-%d') lastmaj
    FROM membre  ORDER BY fightvalue DESC";
     
    // Executer la requete
    $result = mysql_query($query) or die('Erreur SQL !<br>'.$result.mysql_error());
    if ($result==false) {
     
    echo mysql_error();
    }
    $lines = '';
            $now = new DateTime(date('Y-m-d'));
    while ($row = mysql_fetch_array($result)) {
            $lastmaj = new DateTime($row['lastmaj']);
            $interval = $lastmaj->diff($now);
            if( $interval->format('%d') >= 7)$style = 'background-color:red';
    else $style = '';
     
     
    ?>

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    Points : 608
    Points
    608
    Par défaut
    Avec le SQL que je te proposais tu n'avais qu'à faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if( $row['lastmaj'] > 7) {
       ...
    }
    Plus clean non ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Je viens de faire comme toi c'est clair c'est + clean!!!!

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

Discussions similaires

  1. [AC-2000] Suppression ligne avec conditions sur deux tables
    Par Loufink dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 09/07/2009, 11h38
  2. Suppression des lignes avec condition
    Par tientinou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/03/2009, 12h35
  3. [E-03] Copie de ligne avec condition de type rechercheV
    Par Lufia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/02/2009, 14h24
  4. inserer une ligne avec condition
    Par pepesese dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/02/2008, 19h22
  5. Affichage ligne avec condition dans /etc/passwd
    Par mzt.insat dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 17/04/2006, 21h25

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