Afficher en une certaine couleur la ligne en fonction de la valeur statut [Résolu]

cs_plopinou 117 Messages postés dimanche 27 novembre 2005Date d'inscription 13 mai 2009 Dernière intervention - 6 févr. 2006 à 14:56 - Dernière réponse : sidf 1218 Messages postés mardi 20 décembre 2005Date d'inscription 18 octobre 2012 Dernière intervention
- 6 févr. 2006 à 16:18
Bonjour a vous tous :)
je voudrai apporter deux grosse amelioration que voici :

1) trier par un certain ordre que moi je choisi, ici il les trie par ordre lui meme je suppose par ordre du menu deroulant ou alphabetique. ( ORDER BY statut='en cours', statut='in', ??? est ce comme ca?

ensuite, par statut different, je voudrai une couleur differente. Je vois pas du tout comment faire. est ce que quelqu'un pourrait m'aider?

voici mon code pour mieux comprendre :

<?php

//include("connect.php");
// Paramètres de connexion à la base de données

$BD_serveur = "localhost";
$BD_utilisateur = "root";
$BD_motDePasse = "";
$BD_base = "dit";
?>


<center><?php include "menu.php";?></center>,
<?
mysql_connect("localhost", "root", "");
mysql_select_db("dit");

$requete= "SELECT idclient, nom, telephone, gsm, dateheure, assemblage,statut FROM client ORDER BY statut ";

$sql = mysql_query($requete) or die('Erreur SQL');

echo "<table width=\"100%\">";
echo("----, ID</td> Client, Tel / GSM, Entree, assemblage, Statut, c'est celui la, \");
while(list($idclient,$nom, $telephone, $gsm , $dateheure, $assemblage,$statut ) = mysql_fetch_array($sql)) {

//$resolution = str_replace('
','\r\n',$resolution);
echo \", \".
\", \";
if ($telephone!=\"\")
{
echo \"";
}
else
{
echo ", \";
}
if ($gsm!=\"\")
{
echo \"</td>\";
}

echo //\"<textarea disabled=\"disabled\" size=\"45\">$resolution</textarea>, \".
\"$dateheure, \";
?> <center><? if($assemblage==1) echo "A"; ?> </center>, </gras>

<select name="statut" id="select" > <? echo " <option>$statut</option>"; ?>
<option value='In' >In</option><option value='En cours' >En cours</option><option value='Out' >Out</option><option value='En attente' >En attente</option><option value='Appel OK' >Appel OK</option><option value='Mail envoyé' >Mail envoyé</option> </select>,

</td>
&nbsp;,

<? echo \"----
, ----
, \";
}
echo "
";
?>
<table>



<html>
<head><title>.:: STATUT ::.</title></head>


</html>

Encore Merci
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
BunoCS 14097 Messages postés lundi 11 juillet 2005Date d'inscription 24 septembre 2018 Dernière intervention - 6 févr. 2006 à 15:59
3
Merci
Suivant les valeurs de $status, on change la couleur de la ligne:



switch ($status)

{

case 'val1':

echo "<tr bgcolor="#ff0000">...</tr>";

break;

case 'val2':

echo "<tr bgcolor="#00ff00">...</tr>";


break;

....

}

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

Merci BunoCS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de BunoCS
Meilleure réponse
sidf 1218 Messages postés mardi 20 décembre 2005Date d'inscription 18 octobre 2012 Dernière intervention - 6 févr. 2006 à 16:18
3
Merci
passe par une variable
case 'En cours':
$couleur_de_fond="#00ff00";
case 'In':
$couleur_de_fond="#ff0000";
...

et plus loin

echo "<tr bgcolor=' ".$couleur_de_fond." '>";

Merci sidf 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de sidf
sidf 1218 Messages postés mardi 20 décembre 2005Date d'inscription 18 octobre 2012 Dernière intervention - 6 févr. 2006 à 15:12
0
Merci
si statut est un champ alpha, ça me parait normal
order by statut !
Commenter la réponse de sidf
cs_plopinou 117 Messages postés dimanche 27 novembre 2005Date d'inscription 13 mai 2009 Dernière intervention - 6 févr. 2006 à 15:16
0
Merci
oui ici je les trie par statuts differents, mais je voudrai que par exemple le statuts : En cours soit le premier des stauts afficher ... comment faire?
Commenter la réponse de cs_plopinou
sidf 1218 Messages postés mardi 20 décembre 2005Date d'inscription 18 octobre 2012 Dernière intervention - 6 févr. 2006 à 15:22
0
Merci
tu modifies le libellé dans la base
1- En cours
2- ...

je ne vois que ça (ou alors tu fais une table de correspondance avec des codes)
Commenter la réponse de sidf
cs_plopinou 117 Messages postés dimanche 27 novembre 2005Date d'inscription 13 mai 2009 Dernière intervention - 6 févr. 2006 à 15:26
0
Merci
arf suis bete :$

oui c'est ok comme ca et pour la couleur vous avez une idee??
Commenter la réponse de cs_plopinou
sidf 1218 Messages postés mardi 20 décembre 2005Date d'inscription 18 octobre 2012 Dernière intervention - 6 févr. 2006 à 15:36
0
Merci
tu peux charger les differents statuts dans un tableau en leur associant une couleur
quand tu affiches le status , tu récuperes la couleur
faut voir

:?)
Commenter la réponse de sidf
cs_plopinou 117 Messages postés dimanche 27 novembre 2005Date d'inscription 13 mai 2009 Dernière intervention - 6 févr. 2006 à 15:42
0
Merci
heu c'est a dire, ca me semble parfait, mais je vois pas trop comment le faire :$
Commenter la réponse de cs_plopinou
sidf 1218 Messages postés mardi 20 décembre 2005Date d'inscription 18 octobre 2012 Dernière intervention - 6 févr. 2006 à 16:04
0
Merci
tu te simplifierais surement la vie en faisant une petite table de status dans mysql

id_status --> 1
libelle --> En cours
couleur --> 'blue'

et dans ton fichier client, tu mémorises le code statut
quand tu affiches, tu fais un select et tu récupères la libellé et la couleur directement
...

de plus, ton order by statut ne posera plus de problème
Commenter la réponse de sidf
cs_plopinou 117 Messages postés dimanche 27 novembre 2005Date d'inscription 13 mai 2009 Dernière intervention - 6 févr. 2006 à 16:11
0
Merci
oui mais ce proceder va etre tres lourd si j'ai plusieurs chose a afficher par ligne non?

car a en gros si je comprend bien je fais comme ceci :

switch ($statut)
{
case 'In' :
echo "<tr bgcolor= "#ff0000"> echo "<td> </td>".
"<td></td>";
if ($telephone!="")
{
echo "<td>";
}
else
{
echo "<td>";
}
if ($gsm!="")
{
echo "</td>";
}

echo //"<td><textarea disabled="disabled" size="45">$resolution</textarea></td>".
"<td>$dateheure </td>";
?> <td><center> <? if($assemblage==1) echo "A"; ?> </center></td>


<td><select name ="statut" id= "select" > <? echo " <option>$statut</option>"; ?>
<option value='In' >In</option><option value='En cours' >En cours</option><option value='Out' >Out</option><option value='En attente' >En attente</option><option value='Appel OK' >Appel OK</option><option value='Mail envoyé' >Mail envoyé</option> </select>
</td>



</td>
<td>&nbsp;</td>
</tr>


<? echo "<tr><td></td></tr><tr><td></td></tr>";
</tr>";
break;
case 'En cours':
echo "<tr bgcolor="#00ff00"> echo "<td> </td>".
"<td></td>";
if ($telephone!="")
{
echo "<td>";
}
else
{
echo "<td>";
}
if ($gsm!="")
{
echo "</td>";
}

echo //"<td><textarea disabled="disabled" size="45">$resolution</textarea></td>".
"<td>$dateheure </td>";
?> <td><center> <? if($assemblage==1) echo "A"; ?> </center></td>


<td><select name ="statut" id="select" > <? echo " <option>$statut</option>"; ?>
<option value='In' >In</option><option value='En cours' >En cours</option><option value='Out' >Out</option><option value='En attente' >En attente</option><option value='Appel OK' >Appel OK</option><option value='Mail envoyé' >Mail envoyé</option> </select>
</td>



</td>
<td>&nbsp;</td>
</tr>


<? echo "<tr><td></td></tr><tr><td></td></tr>";
</tr>";
break;


}
Commenter la réponse de cs_plopinou

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.