[résolu] Alterner couleur tableau en php

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par dayassine, 26 Juillet 2007.

  1. dayassine
    dayassine WRInaute impliqué
    Inscrit:
    3 Juin 2007
    Messages:
    525
    J'aime reçus:
    0
    Bonjour, j'ai besoin d'une aide svp

    J'utilise punbb comme forum et j'ai crée une page http://www.bladitour.fr/forum/dernier-post.php qui met les 10 derniers post du forum.

    Je voudrais alterner la couleur des lignes, je trouve quelque code mais je sais pas ou les inserer.
    j'ai mis cela dans mon tr mais ca donne ni erreur ni rien
    <?
    if (($compteur % 2) == 0)
    echo "bgcolor=\"#FFFFFF\"";
    else
    echo "bgcolor=\"#000000\"";
    ?>


    voila le code de ma page si ca pourrait aider

    Code:
    <?php
    //-------------------------------------------------//
    //--Fonctions pour recuperer les messages recents--//
    //-------------------------------------------------//
    
    define('PUN_ROOT', './');
    require PUN_ROOT.'include/common.php';
    
    //requete pour récuperer le nombre de ligne
    $sql = 'SELECT t.id FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.moved_to IS NULL ORDER BY t.posted DESC LIMIT 0,10';
    $result = $db->query($sql) or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
    $num_hits = $db->num_rows($result);
    
    $search_ids = array();
    while ($row = $db->fetch_row($result))
    $search_ids[] = $row[0];
    $db->free_result($result);
    $search_results = implode(',', $search_ids);
    
    //requete pour récuperer les derniers messages
    $sql = 'SELECT t.id AS tid, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.closed, t.forum_id FROM '.$db->prefix.'topics AS t WHERE t.id IN('.$search_results.') ORDER BY t.last_post';
    $result = $db->query($sql) or error('Unable to fetch search results', __FILE__, __LINE__, $db->error());
    $search_set = array();
    while ($row = $db->fetch_assoc($result))
    $search_set[] = $row;
    ?>
    <div id="vf" class="blocktable">
    <h2><span>Discussions récents</span></h2>
    <div class="box">
    <div class="inbox">
    <table cellspacing="0" border="1">
    <thead>
    <tr>
    <th class="tcl" scope="col"><?php echo $lang_common['Topic']; ?></th>
    <th class="tc2" scope="col"><?php echo $lang_common['Forum'] ?></th>
    <th class="tc3" scope="col"><?php echo $lang_common['Replies'] ?></th>
    <th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th>
    </tr>
    </thead>
    <tbody>
    <? // Fetch the list of forums
    $result = $db->query('SELECT id, forum_name FROM '.$db->prefix.'forums') or error('Unable to fetch forum list', __FILE__, __LINE__, $db->error());
    
    $forum_list = array();
    while ($forum_list[] = $db->fetch_row($result))
    ;
    // Finally, lets loop through the results and output them
    for ($i = count($search_set)-1; $i >=0; $i--)
    {
    _AT_reset($forum_list);
    while (list(, $temp) = _AT_each($forum_list))
    {
    if ($temp[0] == $search_set[$i]['forum_id'])
    $forum = '<a href="viewforum.php?id='.$temp[0].'">'.pun_htmlspecialchars($temp[1]).'</a>';
    }
    $icon = '<div class="icon"><div class="nosize">'.$lang_common['Normal icon'].'</div></div>'."\n";
    
    $icon_text = $lang_common['Normal icon'];
    $item_status = '';
    $icon_type = 'icon';
    
    
    $subject = '<a href="viewtopic.php?id='.$search_set[$i]['tid'].'">'.pun_htmlspecialchars($search_set[$i]['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($search_set[$i]['poster']).'</span>';
    
    if ($search_set[$i]['closed'] != '0')
    {
    $icon_text = $lang_common['Closed icon'];
    $item_status = 'iclosed';
    }
    
    if (!$pun_user['is_guest'] && $search_set[$i]['last_post'] > $pun_user['last_visit'])
    {
    $icon_text .= ' '.$lang_common['New icon'];
    $item_status .= ' inew';
    $icon_type = 'icon inew';
    $subject = '<strong>'.$subject.'</strong>';
    $subject_new_posts = '<span class="newtext">[ <a href="viewtopic.php?id='.$search_set[$i]['tid'].'&action=new" title="'.$lang_common['New posts info'].'">'.$lang_common['New posts'].'</a> ]</span>';
    }
    else
    $subject_new_posts = null;
    
    $num_pages_topic = ceil(($search_set[$i]['num_replies'] + 1) / $pun_user['disp_posts']);
    
    if ($num_pages_topic > 1)
    $subject_multipage = '[ '.paginate($num_pages_topic, -1, 'viewtopic.php?id='.$search_set[$i]['tid']).' ]';
    else
    $subject_multipage = null;
    
    // Should we show the "New posts" and/or the multipage links?
    if (!empty($subject_new_posts) || !empty($subject_multipage))
    {
    $subject .= ' '.(!empty($subject_new_posts) ? $subject_new_posts : '');
    $subject .= !empty($subject_multipage) ? ' '.$subject_multipage : '';
    }
    
    ?>
    <tr<?php if ($item_status != '') echo ' class="'.trim($item_status).'"'; ?>>
    <td class="tcl"> <div class="intd">
    <div class="<?php echo $icon_type ?>">
    <div class="nosize"><?php echo trim($icon_text) ?></div>
    </div>
    <div class="tclcon"> <?php echo $subject."\n" ?> </div>
    </div></td>
    <td class="tc2"><?php echo $forum ?></td>
    <td class="tc3"><?php echo $search_set[$i]['num_replies'] ?></td>
    <td class="tcr"><?php echo '<a href="viewtopic.php?pid='.$search_set[$i]['last_post_id'].'#p'.$search_set[$i]['last_post_id'].'">'.format_time($search_set[$i]['last_post']).'</a> '.$lang_common['by'].' '.pun_htmlspecialchars($search_set[$i]['last_poster']) ?></td>
    </tr>
    <? } echo "\t\t\t".'</tbody>'."\n\t\t\t".'</table>'."\n\t\t".'</div>'."\n\t".'</div>'."\n".'</div>'."\n\n"; ?>
    Merci
     
  2. chtipepere
    chtipepere WRInaute occasionnel
    Inscrit:
    8 Janvier 2004
    Messages:
    428
    J'aime reçus:
    0
    La classe css doit être appliquée sur les td, et pas sur les tr, si tu veux être sûr de valider, et que cela fonctionne sur tous les navigateurs.

    Bonne journée
     
  3. dayassine
    dayassine WRInaute impliqué
    Inscrit:
    3 Juin 2007
    Messages:
    525
    J'aime reçus:
    0
    merci d'avoir répondu mais j'ai pas compris grand chose.

    la page est tellement pleine que je sais pas sur quel td mettre et comment.

    Si ca ne te gene pas de m'eclairer un peu plus.


    Merci
     
  4. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 601
    J'aime reçus:
    4
    Pour les TR et TD, a priori je dirais :

    Code:
    <tr<?php if ($item_status != '') echo ' class="'.trim($item_status).'"'; ?>>
    <td class="tcl"> <div class="intd">
    <div class="<?php echo $icon_type ?>">
    <div class="nosize"><?php echo trim($icon_text) ?></div>
    </div>
    <div class="tclcon"> <?php echo $subject."\n" ?> </div>
    </div></td>
    <td class="tc2"><?php echo $forum ?></td>
    <td class="tc3"><?php echo $search_set[$i]['num_replies'] ?></td>
    <td class="tcr"><?php echo '<a href="viewtopic.php?pid='.$search_set[$i]['last_post_id'].'#p'.$search_set[$i]['last_post_id'].'">'.format_time($search_set[$i]['last_post']).'</a> '.$lang_common['by'].' '.pun_htmlspecialchars($search_set[$i]['last_poster']) ?></td>
    </tr> 
    

    Il te faut aussi changer un peu la fonction pour que la variable $compteur soit la même que le décompte de la boucle for

    ($i)


    Code:
    <? if (($i % 2) == 0) echo "bgcolor=\"#FFFFFF\""; else echo "bgcolor=\"#000000\"";?> 
    
    
    Si tu veux les appliquer sur le TR, tu mets le bout de code php comme ça :

    Code:
    <tr <? if (($i % 2) == 0) echo "bgcolor=\"#FFFFFF\""; else echo "bgcolor=\"#000000\"";?> 
     <?php if ($item_status != '') echo ' class="'.trim($item_status).'"'; ?>>
    
    
    Si tu veux les appliquer sur les TD, tu mets le bout de code php comme ça dans chaque TD:

    Code:
    <td <? if (($i % 2) == 0) echo "bgcolor=\"#FFFFFF\""; else echo "bgcolor=\"#000000\"";?> 
    class= ...etc
    
    
     
  5. dayassine
    dayassine WRInaute impliqué
    Inscrit:
    3 Juin 2007
    Messages:
    525
    J'aime reçus:
    0
    C'est bon ca marche merci bcp :) ca me permettra d'avancer sur ce que je voulais.

    Merci encore
     
  6. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 601
    J'aime reçus:
    4
  7. dayassine
    dayassine WRInaute impliqué
    Inscrit:
    3 Juin 2007
    Messages:
    525
    J'aime reçus:
    0
    Je vais en profiter pour poser une autre question si ca gene pas.

    j'ai fait un include qui appelle la page des 10 derniers posts, mais il me sort une erreur alors que le chemin est correcte.

    la page en question est http://www.bladitour.fr/dernier-post.php et l'autre page est sur forum/recent.php

    ca me parrait bizzar ca, alors que quand je laisse les 2 sur forum ca marche tres bien.

    Merci
     
  8. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 601
    J'aime reçus:
    4
    Le message indique que le chemin n'est pas bon.

    si le dossier include est à la racine, essaie
    Code:
    <?php include"/include/common.php"; ?>
    
    peut etre
     
  9. dayassine
    dayassine WRInaute impliqué
    Inscrit:
    3 Juin 2007
    Messages:
    525
    J'aime reçus:
    0
    J'ai essayé ca

    <?php include"/forum/recent.php"; ?>


    puisque ma page dernier-post.php a la racine appelle recent.php sur forum/
    et ca donne toujours la meme chose.


    Merci

    ps: l'erreur est la
    require PUN_ROOT.'include/common.php';

    mais je pense ne rien changer puisque ce fichier est tjs a sa place. je voulais l'appeler de la racine de mon site c'est tout.
     
  10. NextGeneration
    NextGeneration WRInaute occasionnel
    Inscrit:
    27 Septembre 2006
    Messages:
    300
    J'aime reçus:
    0
    spécifier la classe pour chaque cellule au lieu d'une fois par ligne, c'est du gachis et ça va a l'encontre du "C" de css : cascading. :roll:

    css:

    .odd, .odd td { background: #eee; }
    .even, .even td { background: #ddd; }

    php:

    $color = (++$i %2 == 0) ? "odd" : "even";
    echo "<tr class='$color'>";

    Cdt.
     
  11. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 601
    J'aime reçus:
    4
    Et tu as essayé
    Code:
    <?php include "forum/recent.php"; ?>
    
    ?
     
  12. dayassine
    dayassine WRInaute impliqué
    Inscrit:
    3 Juin 2007
    Messages:
    525
    J'aime reçus:
    0
    oui j'ai mis ca
    <?php include"forum/recent.php"; ?>


    le probleme c'est que je prend le meme fichier et je l'ai mis sur la racine, j'ai juste ajouter le forum/

    c'est pour ca que j'arrive pas a comprendre


    Merci
     
Chargement...
Similar Threads - [résolu] Alterner couleur Forum Date
Script pour alterner publicité adsense et autre régie [Résolu] Développement d'un site Web ou d'une appli mobile 18 Août 2007
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
[Résolu] Redirection 301 FR vers EN sur Prestashop uniquement sur outils Google ? Problèmes de référencement spécifiques à vos sites 11 Septembre 2017
[résolu] Passage à HTTPS, comment tester une page ? Développement d'un site Web ou d'une appli mobile 7 Septembre 2017
[Résolu] Redirection d'une famille d'URL URL Rewriting et .htaccess 9 Mars 2017
[Résolu] Diaporama et SEO Débuter en référencement 17 Janvier 2017
[résolu]Redirection monsite.fr/index.html sur monsite.fr et seo URL Rewriting et .htaccess 16 Janvier 2017
[resolu]Publicité facebook lié au compte instagram Facebook 12 Décembre 2016
[résolu] Récupérer des valeurs issues de javascript pour les mettre en base MySQL Développement d'un site Web ou d'une appli mobile 18 Juillet 2016
[résolu] Faire une redirection sauf pour mon adresse IP URL Rewriting et .htaccess 15 Juin 2016
[Résolu] 2 descriptions pour une même url selon requête Crawl et indexation Google, sitemaps 1 Juin 2016
[résolu] Action onchange sur FORM/SELECT qui ne fonctionne qu'à la première action ?!? Développement d'un site Web ou d'une appli mobile 31 Mai 2016
[résolu] Sessions : lire le contenu alors qu'on ne sait pas comment il est nommé... Développement d'un site Web ou d'une appli mobile 25 Mai 2016
[résolu] Avoir un paramètre de session "dynamique" ? Développement d'un site Web ou d'une appli mobile 25 Mai 2016
[résolu] Hauteur de div selon état d'un bouton radio Développement d'un site Web ou d'une appli mobile 23 Mai 2016
[résolu] recupération de flux xml et erreur encodage des caractères Développement d'un site Web ou d'une appli mobile 27 Janvier 2016
[résolu] Carte Google Maps avec "zones de densité" Développement d'un site Web ou d'une appli mobile 5 Novembre 2015
Balise NoIndex ignorée par Google? [résolu] Débuter en référencement 13 Janvier 2015
[Résolu] sites référents sans lien vers mon site Demandes d'avis et de conseils sur vos sites 7 Janvier 2015
Lorsqu'on a créé un site, faut-il mettre un lien vers son site dans le footer ? [Résolu] Débuter en référencement 31 Décembre 2014