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

Signaler
Messages postés
117
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2009
-
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
-
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

10 réponses

Messages postés
14822
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
28 septembre 2020
92
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...
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
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." '>";
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
si statut est un champ alpha, ça me parait normal
order by statut !
Messages postés
117
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2009

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?
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
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)
Messages postés
117
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2009

arf suis bete :$

oui c'est ok comme ca et pour la couleur vous avez une idee??
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
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

:?)
Messages postés
117
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2009

heu c'est a dire, ca me semble parfait, mais je vois pas trop comment le faire :$
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
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
Messages postés
117
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2009

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;


}