PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 18-02-2013 15:05:11

tapi
Membre
Inscription : 16-08-2010
Messages : 27

saut de ligne entre données différentes

Bonjour,
je liste une base de données et je souhaiterai qu'à chaque changement d'un élément, j'insère un saut de ligne supplémentaire ou un changement de couleur de police.
Ex. les 10 premières lignes comportent le champ toto, les 20 suivantes le champ titi. Donc je souhaiterai un saut de ligne ou un changement de couleur entre les 10 lignes toto et la suite ?
Auriez-vous une idée ?
Merci

Hors ligne

#2 18-02-2013 15:27:43

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : saut de ligne entre données différentes

Saluton,
Ce que tu veux faire s'appelle, en algorithmique, une gestion de rupture.
Pour la mener à bien il te faut, en amont du parcours de résultat de ta requête, initialiser une variable (drapeau ou flag) à vide. Tu compareras la valeur à celle de la colonne censée changer, par ex: de la valeur '' vers la valeur 'titi' puis de la valeur 'titi' vers la valeur 'toto' etc. en affectant la nouvelle valeur au drapeau à chaque changement.
Bien sûr, cela n'a de sens que si la requête opère un ORDER BY sur cette colonne discriminante.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 18-02-2013 16:47:37

tapi
Membre
Inscription : 16-08-2010
Messages : 27

Re : saut de ligne entre données différentes

Merci de la réponse,
en effet, il s'agit bien d'une gestion de la rupture, je vais voir du coté de cette variable drapeau.
Mais si tu avais un modèle de script, je serai particulièrement preneur
Merci d'avance

Hors ligne

#4 18-02-2013 17:01:46

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : saut de ligne entre données différentes

C'est vraiment de l'algorithmique de base :

var drapeau := '';
tant que resultat
        lire resultat :
        si resultat <> drapeau alors
             changer couleur
             drapeau := resultat
        fsi
     afficher resultat
ftantque

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 20-02-2013 08:18:07

tapi
Membre
Inscription : 16-08-2010
Messages : 27

Re : saut de ligne entre données différentes

Merci de cette aide,
J'ai adopté la solution du comptage de rubrique, voilà un extrait de mon code qui sert à mettre un titre au dessus de chaque rupture et de colorer chaque ensemble de rubrique :

$develop = mysql_query("SELECT DISTINCT t_lib.LIBELLE_ACTION, m41000.LIBELLE_ACTION FROM t_lib, m41000 WHERE t_lib.famille='Développer la relation' and m41000.LIBELLE_ACTION=t_lib.LIBELLE_ACTION and m41000.NUM_PTF='$indicatif'");
$plan = mysql_query("SELECT DISTINCT t_lib.LIBELLE_ACTION, m41000.LIBELLE_ACTION FROM t_lib, m41000 WHERE t_lib.famille='Plan de contact relationnel' and m41000.LIBELLE_ACTION=t_lib.LIBELLE_ACTION and m41000.NUM_PTF='$indicatif'");
$local = mysql_query("SELECT DISTINCT t_lib.LIBELLE_ACTION, m41000.LIBELLE_ACTION FROM t_lib, m41000 WHERE t_lib.famille='Actions locales' and m41000.LIBELLE_ACTION=t_lib.LIBELLE_ACTION and m41000.NUM_PTF='$indicatif'");
}

$count_develop = array();
$count_plan = array();
$count_local = array();
$count_develop[1] = mysql_numrows($develop);
$count_develop[2] = 'Développer la relation';
$count_plan[1] = mysql_numrows($plan);
$count_plan[2] = 'Plan de contact relationnel';
$count_local[1] = mysql_numrows($local);
$count_local[2] = 'Actions locales';
 while ($array = mysql_fetch_assoc($query)) {
  if ($array['famille']=="Développer la relation") {$color='#D5FFFF';}
  elseif ($array['famille']=="Actions locales") {$color='#C5FFB1';}
  else {$color='#FFFD7D';}
echo "<tr>";
  echo "<td width=30%><font face=Arial size=1><strong>";
  if ($i==$count_develop[1]+$count_plan[1]+1){echo "<font size=2 color=red>"; echo "Actions locales";echo "<br>";}
  if ($i==$count_plan[1]+1){echo "<font size=2 color=red>"; echo "Développer la relation";echo "<br>";}
  if ($i<2){echo "<font size=2 color=red>"; echo "Plan de contact relationnel";echo "<br>";}
  echo "</td>";
echo "</tr>";
  echo "<td bgcolor=$color width=30%><font face=Arial size=1><strong>";
  if (preg_match("/p/",$indicatif)||preg_match("/P/",$indicatif)){
        echo $array['LIBELLE_ACTION'];
    }
  else {
...
 

Hors ligne

#6 20-02-2013 17:21:23

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : saut de ligne entre données différentes

grosse machinerie pour un crayon de couleur big_smile
a++

Hors ligne

Pied de page des forums