|
| herve.lagarde | Posté le 08/09/2006 @ 07:18 |
Petit astucien
450 Messages
| Bonjour à tous,
J'ai mis dans mon code un test pour attribuer une valeur a des variables :
Code : PHP if (ceil($tour/2)==$tour)
{
$bgcolor = '#FFFFFF';
$fontcolor = '#000000';
}
else
{
$bgbolor = '#000000';
$fontcolor = '#FFFFFF';
}
J'affiche dans un while des messages. Mais dans ma page j'ai une fois les bonnes valeurs, l'autre passage de boucle la meme valeur pour les deux (en selectionant le ligne du tableau on peut lire)
Voici le code de cet affichageCode : PHP// affichage message depart
$reponse=mysql_query('SELECT * FROM forum WHERE id='.$_GET['id']) or die(mysql_error());
While ($donnees=mysql_fetch_array($reponse))
{
echo '<table width="650" align="center" border="1">';
echo '<tr><td colspan="2">';
echo '<div align="center"><font size="4"><b>Réponse(s) au message de '.$donnees['nom'].' '.$donnees['prenom'].'</b></font></div><br><br>';
echo '</td></tr>';
// ecriture a chaque tour de boucle des donnes (affichage du forum)
// echo '<td width="100"><div align="center">j='.$donnees['jour'].'</div></td>';
echo '<tr><td width="120" align="center">'.$donnees['jour'].'</td>'.'<td width="530"><u>'.$donnees['prenom'].' '.$donnees['nom'].'</u></td></tr>';
echo '<tr><td colspan="2"><div align="justify">'.$donnees['msg'].'<br><br></div>';
echo '</table>';
}
// affichage reponses
$reponse=mysql_query('SELECT * FROM forum WHERE id_depart='.$_GET['id'].' ORDER BY id DESC') or die(mysql_error());
$tour=1;
While ($donnees=mysql_fetch_array($reponse))
{
echo '<table width="650" align="center" border="1">';
// ecriture a chaque tour de boucle des donnes (affichage du forum)
// echo '<td width="100"><div align="center">j='.$donnees['jour'].'</div></td>';
echo '<tr><td width="120" align="center">'.$donnees['jour'].'</td>'.'<td width="530"><u>'.$donnees['prenom'].' '.$donnees['nom'].
'</u></td></tr>';
// choix couleur de fond alternée
if (ceil($tour/2)==$tour)
{
$bgcolor = '#FFFFFF';
$fontcolor = '#000000';
}
else
{
$bgbolor = '#000000';
$fontcolor = '#FFFFFF';
}
echo $bgcolor.$fontcolor;
echo '<tr><td colspan="2" bgcolor="'.$bgcolor.'"><font color="'.$fontcolor.'"><div align="justify">'.$donnees['msg'].'</font></div>';
// comptage du nombre de msg en reponse msg_depart
$compte = mysql_query('SELECT COUNT(*) AS nombre FROM forum WHERE id_depart='.$donnees['id']);
$donnees2 = mysql_fetch_array($compte);
echo '<table width="500" align="center" border="0"><tr><td width="250" bgcolor="#000000"><a href="rep_msg_forum.php?id_depart='.
$donnees['id'].'">répondre</a></td>';
if ($donnees2['nombre']>0)
{
echo '<td width="250" bgcolor="#000000"><a href="msg_forum.php?id='.$donnees['id'].'">lire les réponses<a></td>';//lien reponses
}
else
{
echo '<td width="250" bgcolor="#000000"> </td>';
}
// echo '<tr><td colspan="2"><div align="justify">'.$donnees['msg'].'</div>';
echo '</table>';
echo '</td></tr></table>';
$tour++;
}
Quelqu'un peut m'expliquer
|
| |
| |
| Publicité |
|
|
| herve.lagarde | Posté le 08/09/2006 à 12:46 |
Petit astucien
450 Messages
| personne ? |
| |
|
| Malcolm | Posté le 08/09/2006 à 17:23 |
Astucien
7269 Messages
| pour être honnête, ton code source me semble (à défaut d'être illisible ici) incompréhensible ...
tu mets ton echo <table ...> dans le While, donc s'il y a 5 messages, tu ouvres 5 tables ...?
perso je ferais un truc comme ça : je jonglerais entre un true t un false sur un booléen, true pour pair et false pour impair (ou inversément, peu importe).
comme ceci :
$ligne_paire = true; // on commence à true
echo table ... tr td ; // pour l'entête
while ($message = ysql_fetch_array($reponse))
{
echo "<tr style=";
echo ($ligne_paire) ? "color:#000; background-color:#FFF;" : "color:#FFF; background-color:#000;" // Si true, color 'Noir' et bg 'blanc' sinon l'inverse
echo "\"><td>...contenu du(des) td</td></tr>";
// permuter la couleur
$ligne_paire = ($ligne_paire) ? false : true;
}
echo "</table>"
|
| |
|
| herve.lagarde | Posté le 08/09/2006 à 17:46 |
Petit astucien
450 Messages
| Merci, mais a premiere vue ca va m'etre compliqué.
Surtout que mon probleme venait juste d'un probleme de frappe, c'est résolu, j'ai oublié indiquer, je fais de suite |
| |
|
|
| Haut de la page |