problème requête sql/affichage

hervedum
Invité n'ayant pas de compte PHPfrance

06 mai 2013, 09:53

Bonjour,
je n'arrive pas résoudre ce pb pourriez vous m'aider svp.
j'ai bien essayer avec group by (par base) mais il doit me manquer une logique a ma requête.

j'ai une table sous la forme:

id / color / base
------------------------
1 / rouge / A
2 / vert / A
3 / jaune / B
4 / gris / C
5 / noir / C


et je souhaite afficher:

base / color
-----------------------
A rouge/vert
-----------------------
B jaune
-----------------------
C gris/noir
-----------------------

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 mai 2013, 11:20

Salut,


Group by ne fonctionne que pour les fonctions de groupe (count sum etc).

Montre nous le code que tu a actuellement.
Il te pense organiser une césure. Dans ton cas il faut garder en memoire la base de la ligne précédente afin de l'afficher ou non si c'est la même.

@+
Il en faut peu pour être heureux ......

hervedum
Invité n'ayant pas de compte PHPfrance

06 mai 2013, 12:01

Merci pour l'aide, pour simplifier mon code (avec une requête qui reprend toute les lignes de ma table) correspond a ça:
<?php foreach ($articles as $k => $v):;  ?>
Base: <?php echo $v['Article']['base']; ?>
       color: <?php echo $v['Article']['color']; ?><br>
<?php endforeach ?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 mai 2013, 14:46

As tu essayé quelque chose avec mes indications ?

Les principes est simples. En pseudo code cela donne
$old =null;
Pour chaque ligne
Si $old est différent de la base courante
Afficher la base
$old = base courante
Fin si
Afficher les données
Fin pour chaque.


@+
Il en faut peu pour être heureux ......