Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
730 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  CHangement de fond une fois sur deux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

CHangement de fond une fois sur deux

n°1513869
oli1987
Posté le 12-02-2007 à 22:27:38  profilanswer
 

Bonjour,
 
Dans les résultats d'une requête qui apparaissent dans un tableau  j'aimerai qu'une ligne sur deux possède un fond blanc, et l'autre un fond mauve, mais je ne vois pas bien comment m'y prendre pour signaler cela...
 
Qqun peut il m'aider ?
 
Merci d'avance

mood
Publicité
Posté le 12-02-2007 à 22:27:38  profilanswer
 

n°1513872
Alisteroid
Posté le 12-02-2007 à 22:37:35  profilanswer
 

Code :
  1. $color = 0;
  2. foreach ($tab as $key => $value)
  3. {
  4. if ($color%2==0)
  5. $couleur = "#FFFFFF" //Cherche le code hexa pour le mauve
  6. else
  7. $couleur = "#000000"
  8. echo "<TD style='background-color=".$couleur." '>"
  9. $color ++
  10. }


libre à toi de faire deux styles css différents pour chaque ligne et de mettre le nom de la classe en parametre


Message édité par Alisteroid le 12-02-2007 à 22:40:41
n°1513878
oli1987
Posté le 12-02-2007 à 22:47:47  profilanswer
 

ok merci bien


Message édité par oli1987 le 12-02-2007 à 22:52:34
n°1513884
oli1987
Posté le 12-02-2007 à 22:59:27  profilanswer
 

j'ai un peu du mal ...
Je ne sais pas comment paramètrer mon $array ...
 

Code :
  1. <?php
  2.   $color = 0;
  3.   $array = array( '');
  4.   foreach ($array as $key => $value){
  5.   if ($color%2==0){
  6.   $couleur = "#c891ff";
  7.   } else {
  8.   $couleur = "#ffffff";
  9.   }
  10.   echo "<td width='100' style='background-color=".$couleur." '>";
  11.   }
  12.   ?>

n°1513896
Surfoo
Ça va ? ok.
Posté le 12-02-2007 à 23:40:57  profilanswer
 

Bah le array représente les données que tu veux mettre dans le tableau.
Si ça viens de la base de données, tu n'as pas besoin du array() (qui sera fait par un fetch_array par exemple) et utilise le while() a la place du foreach().


Message édité par Surfoo le 12-02-2007 à 23:41:37
n°1513898
oli1987
Posté le 12-02-2007 à 23:54:05  profilanswer
 

en effet, il y a du mieux  
 

Code :
  1. <?php       
  2. $compteur = 0;     
  3. $array = mysql_fetch_array($result85, MYSQL_NUM);       
  4. foreach ($array as $key => $value){     
  5.   if ($compteur%2 === 0){     
  6.      $couleur = '#4C0099';     
  7.   } else {     
  8.      $couleur = '#ffffff';     
  9.   }       
  10.   echo '<tr style="background-color:', $couleur ,'">';
  11.   $compteur++;   
  12. }     
  13. ?>


 
Mais mtnt, la moitié des résultats ne s'affichent plus. A quoi est-ce dû ?

n°1513899
sielfried
Posté le 12-02-2007 à 23:57:29  profilanswer
 

Pas besoin d'un modulo pour ça, suffit d'un booléen (à moins d'avoir besoin aussi du compteur)... Enfin bref peu importe.
 

Citation :


Mais mtnt, la moitié des résultats ne s'affichent plus. A quoi est-ce dû ?


 
J'sais pas, dans ton tableau la couleur d'écriture est blanche ? [:dawa]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1513901
oli1987
Posté le 13-02-2007 à 00:01:14  profilanswer
 

non meme pas. Les cellules qui sont vides sont moins hautes...
 

Code :
  1. <?php       
  2. $compteur = 0;     
  3. $array = mysql_fetch_array($result85, MYSQL_NUM);       
  4. foreach ($array as $key => $value){     
  5.   if ($compteur%2 === 0){     
  6.      $couleur = '#4C0099';     
  7.   } else {     
  8.      $couleur = '#ffffff';     
  9.   }       
  10.   echo '<tr style="background-color:', $couleur ,'">';
  11.   $compteur++;   
  12. }     
  13. ?>

n°1513903
sielfried
Posté le 13-02-2007 à 00:12:49  profilanswer
 

En même temps t'affiches rien là... fais voir ton code entier.
 
Mais bon c'est pas le changement de couleur qui va changer quoi que ce soit (à part la couleur, that is :o).


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1513904
oli1987
Posté le 13-02-2007 à 00:16:43  profilanswer
 

Soyons fous !
 

Code :
  1. <table align="center" width="440" cellpadding="0" cellspacing="0">
  2. <tr>
  3. <td>
  4. <?php
  5. mysql_connect("localhost", "bcml", "bcml" ) or die("Impossible de se connecter :  " . mysql_error());
  6. mysql_select_db("bcmlbe" );
  7. $date2 = date('2006-08-10 20:00:00');
  8. $result85 = mysql_query("SELECT DATE_FORMAT(date,'%d-%m à %H:%i') AS date, game, score, cat, cadre, id, comment FROM games WHERE date BETWEEN '".date('2007-02-13 19:00:00')."' AND '".date('2007-02-28 21:00:00')."' ORDER BY games.date ASC" );
  9. while ($row85 = mysql_fetch_array($result85, MYSQL_NUM))
  10. {
  11. ?> 
  12. <?php       
  13. $compteur = 0;     
  14. $array = mysql_fetch_array($result85, MYSQL_NUM);       
  15. foreach ($array as $key => $value){     
  16.   if ($compteur%2 === 0){     
  17.      $couleur = '#4C0099';     
  18.   } else {     
  19.      $couleur = '#ffffff';     
  20.   }       
  21.   echo '<tr style="background-color:', $couleur ,'">';
  22.   $compteur++;   
  23. }     
  24. ?>
  25. <td width="100">
  26.       <p align="center"><font face="Verdana" color="#000000"><span style="font-size: 8pt">
  27.       <?php echo $row85[0]; ?></span></font></p></td>
  28.       <td width="60"><p align="left"><font face="Verdana" style="font-size: 8pt" color="#000000"><?php
  29. if ($row85[4] == 1){
  30. echo 'Champ.';
  31. }
  32. elseif ($row85[4] == 2){
  33. echo 'AWBB';
  34. }
  35. elseif ($row85[4] == 3){
  36. echo 'Amical';
  37. }
  38. elseif ($row85[4] == 4){
  39. echo 'Cpe Pr.';
  40. }
  41. elseif ($row85[4] == 5){
  42. echo '1er tour';
  43. }
  44. elseif ($row85[4] == 6){
  45. echo '2ème tour';
  46. }
  47. elseif ($row85[4] == 7){
  48. echo '3° tour';
  49. }
  50. elseif ($row85[4] == 8){
  51. echo '4° tour';
  52. }
  53. elseif ($row85[4] == 9){
  54. echo 'Coupe Bel.';
  55. }
  56. ?></font></p></td>
  57. </tr>
  58. </table>

Message cité 1 fois
Message édité par oli1987 le 13-02-2007 à 00:17:55
mood
Publicité
Posté le 13-02-2007 à 00:16:43  profilanswer
 

n°1513906
zapan666
Tout est relatif
Posté le 13-02-2007 à 00:52:57  profilanswer
 

oli1987 a écrit :


Code :
  1. while ($row85 = mysql_fetch_array($result85, MYSQL_NUM))
  2. {
  3. ?> 
  4. $array = mysql_fetch_array($result85, MYSQL_NUM);



 [:dao] C'est quoi le but de la manœuvre là ?  


---------------
my flick r - Just Tab it !
n°1513910
oli1987
Posté le 13-02-2007 à 01:02:33  profilanswer
 

le while me sert à afficher les résultats de ma requête en plusieurs lignes.
 
Quant à $array, on m'a donné cela, mais je m'embrouille plus qu'autre chose ...

n°1513913
zapan666
Tout est relatif
Posté le 13-02-2007 à 01:19:57  profilanswer
 

oli1987 a écrit :

le while me sert à afficher les résultats de ma requête en plusieurs lignes.
 
Quant à $array, on m'a donné cela, mais je m'embrouille plus qu'autre chose ...


bah ouais, parce que si vu comment c'est ecris, tu loupe la moitié de tes résultats...
(chaque appel a mysql_fetch_array avance le "curseur" du résultat sur la requête)


---------------
my flick r - Just Tab it !
n°1513915
oli1987
Posté le 13-02-2007 à 01:28:14  profilanswer
 

rebonsoir,
dis, avec le code suivant, ca a l'air d'être dans le bon. Seul hic, y a que le premier résultat qui s'affiche. Il doit pas manquer grand chose, mais je vois pas quoi ...
 

Code :
  1. <?php
  2. $num_ligne = mysql_num_rows($result85);
  3. while($row = mysql_fetch_row($result85)){
  4. $var = $num_ligne % 2;
  5. if ($var == 0){
  6. $couleur='#a9a9dd';
  7. } else{
  8. $couleur='#ffffff';
  9. }
  10. echo "<tr><td bgcolor=" .$couleur. ">";
  11. }
  12. ?>

n°1513935
sielfried
Posté le 13-02-2007 à 08:46:44  profilanswer
 

C'est légèrement (voire complètement) n'importe quoi tout ça quand même, avec le <tr> tout seul dans son pauvre for (dans un <td>, en +) et tout le reste du tableau hors de la boucle...  [:pingouino]  
 
Et puis là tu fais n'importe quoi avec $num_ligne et le modulo 2 parce que tu sais probablement pas du tout ce que tu fais.
 
Bref, conseil : revois les bases. :spamafote:


Message édité par sielfried le 13-02-2007 à 08:47:12

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1513960
Alisteroid
Posté le 13-02-2007 à 09:52:38  profilanswer
 

Code :
  1. <?php
  2. $num_ligne=0;
  3. while($row = mysql_fetch_assoc($result85))
  4. {
  5. $var = $num_ligne % 2;
  6. if ($var == 0){
  7.  $couleur='#a9a9dd';
  8. } else{
  9.  $couleur='#ffffff';
  10. echo "<TR bgcolor=".$couleur.">";
  11. foreach ($row as $key=>$cellule)
  12. {
  13.  echo "<TD ...... >".$cellule."</TD>";
  14. }
  15. echo "</TR>";
  16. $num_ligne ++;
  17. }
  18. ?>


Message édité par Alisteroid le 13-02-2007 à 10:02:09
n°1513988
Surfoo
Ça va ? ok.
Posté le 13-02-2007 à 10:33:28  profilanswer
 

N'empeche que le mieux c'est quand même ça, je trouve :

Code :
  1. $couleurs = array('couleur1', 'couleur2');
  2. $nb = count($couleurs);
  3. $i = 0;
  4. while($resultat = $mysql->fetch_array()) {
  5. echo '<tr class="'.$couleurs[$i%$nb].'">';
  6. echo ' <td>blabla</td>';
  7. echo '</tr>';
  8. $i++;
  9. }


 
On peut spécifier autant de couleur dans $couleurs là.


Message édité par Surfoo le 13-02-2007 à 10:34:01
n°1513994
oli1987
Posté le 13-02-2007 à 10:43:56  profilanswer
 

Avec le code suivant, le résultat semble bien plus proche :
 

Code :
  1. <?php
  2. $num_ligne=0;
  3. while($row = mysql_fetch_assoc($result85)){     
  4. $var = $num_ligne % 2;   
  5. if ($var == 0){       
  6. $couleur='#a9a9dd';   
  7. } else{       
  8. $couleur='#ffffff';
  9. foreach ($row as $key=>$cellule){
  10. echo "<TR bgcolor=".$couleur.">";
  11. }
  12. ?> 
  13. <td>...</td>
  14. <td>...</td>
  15. <td>...</td>
  16. <td>...</td>
  17. </tr>
  18. <?php
  19. $num_ligne ++;
  20. }
  21. }
  22. mysql_free_result($result85);
  23. ?>


Mais voici le résultat, seule la première ligne est affichée, et répétée autant de fois qu'il y a de matches :
 
http://www.bcml.be/Images/index.1.jpg
 
Que manque-t-il ?


Message édité par oli1987 le 13-02-2007 à 10:44:34

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  CHangement de fond une fois sur deux

 

Sujets relatifs
créer des jeux, fond d'écran et logo pour téléphonesfixer un fond d'écran en html sans feuille de style
CSS Fond transparentdernier changement dans une base
[C ou VB] tache de fond, sans systray iconeProblème pour fixer l'image de fond
Site multilangue, changement de langue, page identiqueChangement de format de date lors d'une insertion
imagecolorallocate : impossible de définir la couleur de fondParametre dans URL, foire une fois sur 5...
Plus de sujets relatifs à : CHangement de fond une fois sur deux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR