Ne pas afficher une variable si elle a la même valeur ...
Randaxhe
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir à tous,
Je m'arrache les cheveux afin de trouver le moyen de mettre en page de façon plus claire le résultat de ma requête.
Y a-t-il un moyen de ne pas répéter l'affichage d'une variable si elle est = à l'entrée précédente ?
En résumé, le résultat de ma requête sql s'affiche comme ceci :
Et j’aimerais pouvoir l’afficher comme cela :
Y a-t-il un moyen de faire cela ?
D'avance, merci
PS : désolé pour l'affichage, les tableaux se sont écrasés lors de la validation....Mais vous comprendrez, j'en suis sûr !
Je m'arrache les cheveux afin de trouver le moyen de mettre en page de façon plus claire le résultat de ma requête.
Y a-t-il un moyen de ne pas répéter l'affichage d'une variable si elle est = à l'entrée précédente ?
En résumé, le résultat de ma requête sql s'affiche comme ceci :
+- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | Europe | Belgique | Bruxelles | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | Europe | Belgique | Liège | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | Europe | Belgique | Namur | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | Europe | Belgique | Charleroi | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | Europe | France | Paris | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | Europe | France | Lilles | +- - - - - - - - - - - + - - - - - - - - - - + -- - - - - - - - - + | Europe | France | Dijon | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | Europe | France | Marseille | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - +
Et j’aimerais pouvoir l’afficher comme cela :
+- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | Europe | Belgique | Bruxelles | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | | | Liège | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | | | Namur | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | | | Charleroi | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | | France | Paris | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | | | Lilles | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | | | Dijon | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + | | | Marseille | +- - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - +
Y a-t-il un moyen de faire cela ?
D'avance, merci
PS : désolé pour l'affichage, les tableaux se sont écrasés lors de la validation....Mais vous comprendrez, j'en suis sûr !
3 réponses
-
Un tout grand merci pour ta solution que je vais adopter certainement...
La nuit portant conseil, j'ai tout de même trouvé ceci ce matin qui fonctionne :
<?php $i=0; if($rowAllRencontres_ID != null): foreach($rowAllRencontres_ID as $r): ?> <div class="row"> <div class="col-md-2"> <?php if($i>0){ if($rowAllRencontres_ID[$i-1]->Date_Match!=$r->Date_Match){echo $r->Date_Match;} else {echo ' ';} } else echo $r->Date_Match; ?> </div> <div class="col-md-2"><?php echo $r->Lieu_Match; ?></div> <div class="col-md-3"><?php echo $r->Rencontre_Match; ?></div> </div> <?php $i++; endforeach; endif; ?> -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
cela me semble possible.
peux-tu partager ton code PHP, pour que nous puissions suggérer comment l'adapter?
quand tu partages du code, merci d'utiliser les balises: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code -
Je suis dans Codeigniter, voici les lignes de code :
1. La requête :function get_all_Matchs($id) { $this->db->select('*'); $this->db->from('Table_Matchs'); $this->db->where('Competition_ID',$id); $this->db->order_by('Table_Matchs.Date_Match','ASC'); $q = $this->db->get(); if($q->num_rows()>0) { foreach($q->result() as $row) { $data[] = $row; } return $data; } }
2. L'affichage :<?php if($rowAllRencontres_ID != null): foreach($rowAllRencontres_ID as $r): ?> <div class="row"> <div class="col-md-2"><?php echo $r->Date_Match; ?></div> <div class="col-md-2"><?php echo $r->Lieu_Match; ?></div> <div class="col-md-3"><?php echo $r->Rencontre_Match; ?></div> </div> <?php endforeach; endif; ?>
Il s'agit d'un calendrier de matchs ...et non de villes (que j'avais pris comme illustration !)
Donc, dans ce cas-ci, tant que la date est la même -> ne pas le répéter ...
Et dans cette même date, tant que le lieu est le même -> ne pas le répéter non plus !
Ce qui simplifie nettement la lecture du calendrier...-
L'idée générale, c'est de mémoriser la valeur du dernier élément affiché, et, si la valeur courante est identique, de ne pas l'afficher.
Donc, tu mémorises l'ancienne valeur de $r->Date_Match. Si la nouvelle valeur est identique à l'ancienne, tu n'affiches rien.
Sinon, tu affiches et mémorises la nouvelle.
-