PHP/MySql - Regrouper des données
Résolu/Fermé
virtualsof
Messages postés
106
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
17 août 2014
-
16 avril 2009 à 14:36
virtualsof Messages postés 106 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 - 2 mai 2009 à 20:42
virtualsof Messages postés 106 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 17 août 2014 - 2 mai 2009 à 20:42
A voir également:
- PHP/MySql - Regrouper des données
- Fuite données maif - Guide
- Comment regrouper des pdf - Guide
- Trier des données excel - Guide
- Comment regrouper des applications sur android - Accueil - Guide Android
- Easy php - Télécharger - Divers Web & Internet
17 réponses
Dans le cas ou pour tous tes enregistrements de la table, le champ rubrique est renseigné :
$old = ""; // ou autre valeur quelconque
while ($ligne = mysql_fetch_array($result)) {
$r = $ligne[Rubrique];
if ( $r != $old ) {
// nouvelle rubrique ...
$old = $r;
}
else { // rubrique courante
....
}
} // while
$old = ""; // ou autre valeur quelconque
while ($ligne = mysql_fetch_array($result)) {
$r = $ligne[Rubrique];
if ( $r != $old ) {
// nouvelle rubrique ...
$old = $r;
}
else { // rubrique courante
....
}
} // while
virtualsof
Messages postés
106
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
17 août 2014
17
2 mai 2009 à 20:42
2 mai 2009 à 20:42
Comme j'ai trouvée la solution, enfin qu'elle m'a été donnée sur un autre forum, et que je pense que ça peux resservir, je la transmet.
https://www.developpez.net/forums/d698965/php/php-base-donnees/regrouper-donnees-d-base-date/#post4073703
Résolu.
https://www.developpez.net/forums/d698965/php/php-base-donnees/regrouper-donnees-d-base-date/#post4073703
Résolu.
Dans le genre :
$precedant="plop";
while($truc=mysql_fetch_array($nom_exe_requete))
{
if($truc["rubrique"]==$precedant)
{
echo $truc["nom"];
}
else
{
echo "<br>".$truc["rubrique"].":".$truc["nom"];
}
$precedant=$truc["rubrique"]
}
Je pense qu'en faisant quelque chose comme cela, tu devrais obtenir ton affichage.(Avec un tableau et en jouant sur les <tr> <td>, ça pourrait être mieux ;) )
$precedant="plop";
while($truc=mysql_fetch_array($nom_exe_requete))
{
if($truc["rubrique"]==$precedant)
{
echo $truc["nom"];
}
else
{
echo "<br>".$truc["rubrique"].":".$truc["nom"];
}
$precedant=$truc["rubrique"]
}
Je pense qu'en faisant quelque chose comme cela, tu devrais obtenir ton affichage.(Avec un tableau et en jouant sur les <tr> <td>, ça pourrait être mieux ;) )
ThEBiShOp
Messages postés
8411
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
16 avril 2009 à 15:06
16 avril 2009 à 15:06
tu peux faire une requête comme ceci :
select * from table order by Rubrique, Nom asc
et dans ton code php, tu fais un nouvelle ligne pour chaque valeur de $result['Rubrique']
select * from table order by Rubrique, Nom asc
et dans ton code php, tu fais un nouvelle ligne pour chaque valeur de $result['Rubrique']
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
une solution possible
select Rubrique, Nom from ... order by Rubrique ASC ou DESC
et après dans la sortie tu détecte le changement de rubrique
select Rubrique, Nom from ... order by Rubrique ASC ou DESC
et après dans la sortie tu détecte le changement de rubrique
virtualsof
Messages postés
106
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
17 août 2014
17
16 avril 2009 à 15:13
16 avril 2009 à 15:13
Merci pour votre réponse.
J'ai effectivement pensé a ça mais cette option m'oblige à connaitre les valeur des rubriques. Hors je ne les connait pas lors de l'interrogation de la BDD.
C'était pas spécifié effectivement. oops.
En fait il faudrait que j'arrive à faire une nouvelle ligne à chq changement de rubrique.
J'ai effectivement pensé a ça mais cette option m'oblige à connaitre les valeur des rubriques. Hors je ne les connait pas lors de l'interrogation de la BDD.
C'était pas spécifié effectivement. oops.
En fait il faudrait que j'arrive à faire une nouvelle ligne à chq changement de rubrique.
ThEBiShOp
Messages postés
8411
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
16 avril 2009 à 15:21
16 avril 2009 à 15:21
tu n'as pas besoin de savoir ce qu'il y a dans ta rubrique en faisant ça non, il faut juste contrôler quand il y a un changement de rubrique.
virtualsof
Messages postés
106
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
17 août 2014
17
16 avril 2009 à 17:30
16 avril 2009 à 17:30
Tout d'abord merci infiniment toutes pour vos suggestions.
J'ai tout d'abord essayé la methode de Rhiannon sans succès (en fait même résultat : rien).
Puis avec celle de DomDom, voila ce que j'ai écrit :
Donc ceci ne m'affiche rien :/
Effectivement on est dans le cas ou toutes les rubriques sont renseignées, mais il peux y en avoir plusieurs, et pas seulement 2 différentes.
Alors j'ai p-e pas compris un truc. Merci de votre patience
J'ai tout d'abord essayé la methode de Rhiannon sans succès (en fait même résultat : rien).
Puis avec celle de DomDom, voila ce que j'ai écrit :
<?php $nextrub = ""; while($row_selectPages = mysql_fetch_assoc($selectPages)) { $rub = htmlentities($row_selectPages['rub'], ENT_COMPAT, 'iso-8859-1'); if ($rub != $nextrub) { ?> <h4><strong><?php echo $rub; ?></strong></h4> <?php $rub = $nextrub; ?> <?php } else { ?> <h4><strong><?php echo $rub; ?></strong></h4> <?php }} ?>
Donc ceci ne m'affiche rien :/
Effectivement on est dans le cas ou toutes les rubriques sont renseignées, mais il peux y en avoir plusieurs, et pas seulement 2 différentes.
Alors j'ai p-e pas compris un truc. Merci de votre patience
virtualsof
Messages postés
106
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
17 août 2014
17
17 avril 2009 à 14:20
17 avril 2009 à 14:20
Bonjour,
Et bien ca fait tjs pareil : rien.
Aucun affichage. même pas une ligne...
Et bien ca fait tjs pareil : rien.
Aucun affichage. même pas une ligne...
Je viens de tester sur mon site ce bout de code
$query = "select * from docent order by DENT_TYPE asc ";
$result = @mysql_query($query, $link) or die ("Erreur dans la lecture de la table docent");
$nextrub = "";
while($row_selectPages = mysql_fetch_assoc($result)) {
$rub = htmlentities($row_selectPages['DENT_TYPE'], ENT_COMPAT, 'iso-8859-1');
if ($rub != $nextrub) {
$nextrub = $rub;
echo "<h4><strong>$rub</strong></h4>\n";
} else {
echo "$rub\n";
}
}
?>
voila le résulat :
ACC
ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC
FAQ
FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ
ITEC
ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC
$query = "select * from docent order by DENT_TYPE asc ";
$result = @mysql_query($query, $link) or die ("Erreur dans la lecture de la table docent");
$nextrub = "";
while($row_selectPages = mysql_fetch_assoc($result)) {
$rub = htmlentities($row_selectPages['DENT_TYPE'], ENT_COMPAT, 'iso-8859-1');
if ($rub != $nextrub) {
$nextrub = $rub;
echo "<h4><strong>$rub</strong></h4>\n";
} else {
echo "$rub\n";
}
}
?>
voila le résulat :
ACC
ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC ACC
FAQ
FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ
ITEC
ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC ITEC
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
17 avril 2009 à 15:13
17 avril 2009 à 15:13
Id Rubrique Nom Lien 1 Telephone Nokia Nokia.php 2 Telephone Siemens siemens.php 3 Telephone HTC HTC.php 4 Ecran Acer acer.php 5 Ecran Asus Asus.php
$sql = 'SELECT Id, Rubrique, Nom, Lien FROM latable ORDER BY Rubrique'; $result = mysql_query($sql) or exit(mysql_error()); $rubrique = ''; while( $ligne = mysql_fetch_assoc($result) ) { if( $ligne['Rubrique'] != $rubrique ) $rubrique = $ligne['rubrique']; echo '<h4>' . $rubrique . '</h4>' . "\n"; echo '<p>' . $ligne['id'] . ' - ' . $ligne['Nom'] . ' - ' .$ligne['lien'] . '</p>' . "\n"; }
en gras les 2 lignes modifiées
if( $ligne['Rubrique'] != $rubrique )
$rubrique = $ligne['Rubrique'];
echo '<h4>' . $rubrique . '</h4>' . "\n";
echo '<p>' . $ligne['Id'] . ' - ' . $ligne['Nom'] . ' - ' .$ligne['Lien'] . '</p>' . "\n";
if( $ligne['Rubrique'] != $rubrique )
$rubrique = $ligne['Rubrique'];
echo '<h4>' . $rubrique . '</h4>' . "\n";
echo '<p>' . $ligne['Id'] . ' - ' . $ligne['Nom'] . ' - ' .$ligne['Lien'] . '</p>' . "\n";
virtualsof
Messages postés
106
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
17 août 2014
17
21 avril 2009 à 16:15
21 avril 2009 à 16:15
bonjour,
Navré de n'avoir pas répondu plus tôt et encore merci. J'ai toujours pas réussi à obtenir le résultat souhaité.
Ce que vous m'avez proposé me donne le résultat suivant :
Hors je souhaite que le nom de la rubrique n'apparaisse qu'UNE seule fois.
Alors j'ai bien compris qu'on affecte à la variable $rub, le nom de la première rubrique, puis on teste à chq ligne si $rub = le nom de la première itération. Sinon on lui affecte le nouveau nom rencontré puis on recommence.
Mais en pratique je m'en sort pas...
Par contre j'ai utilisé Do / While car je me retrouve sinon avec un enregistrement en moins.
Mais je retrouve maintenant avec le nom de la première rubrique qu reviens...
Help :(
Navré de n'avoir pas répondu plus tôt et encore merci. J'ai toujours pas réussi à obtenir le résultat souhaité.
Ce que vous m'avez proposé me donne le résultat suivant :
Telephone Nokia Nokia.php Telephone Siemens siemens.php Telephone HTC HTC.php Ecran Acer acer.php Ecran Asus Asus.php Telephone Nokia Nokia.php
Hors je souhaite que le nom de la rubrique n'apparaisse qu'UNE seule fois.
Alors j'ai bien compris qu'on affecte à la variable $rub, le nom de la première rubrique, puis on teste à chq ligne si $rub = le nom de la première itération. Sinon on lui affecte le nouveau nom rencontré puis on recommence.
Mais en pratique je m'en sort pas...
Par contre j'ai utilisé Do / While car je me retrouve sinon avec un enregistrement en moins.
Mais je retrouve maintenant avec le nom de la première rubrique qu reviens...
$nextrub = ""; do { $rub = $row_selectPages['rub']; $rub = htmlentities($row_selectPages['rub'], ENT_COMPAT, 'iso-8859-1'); //echo $rub; if ($rub != $nextrub) { $nextrub = $row_selectPages['rub']; ?> <h4><strong><?php echo $nextrub; ?></strong></h4> <?php } else { ?> <h4><strong><?php echo $nextrub; ?></strong></h4> <?php echo $row_selectPages['titre']; ?> <?php }} while($row_selectPages = mysql_fetch_assoc($selectPages)); ?>
Help :(
virtualsof
Messages postés
106
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
17 août 2014
17
23 avril 2009 à 16:59
23 avril 2009 à 16:59
up :(
Je viens de tester ton code :
4 - Acer - acer.php
5 - Asus - toto.php
1 - Nokia - nokia.php
2 - Siemens - siemens.php
3 - HTC - htc.php
Il fonctionne à merveille sous réserve de respecter le nom des champs : Id et Lien
echo '<p>' . $ligne['Id'] . ' - ' . $ligne['Nom'] . ' - ' .$ligne['Lien'] . '</p>' . "\n";
4 - Acer - acer.php
5 - Asus - toto.php
1 - Nokia - nokia.php
2 - Siemens - siemens.php
3 - HTC - htc.php
Il fonctionne à merveille sous réserve de respecter le nom des champs : Id et Lien
echo '<p>' . $ligne['Id'] . ' - ' . $ligne['Nom'] . ' - ' .$ligne['Lien'] . '</p>' . "\n";