OVH Cloud OVH Cloud

Requete SQL

6 réponses
Avatar
Zitoune
Bonjour,

Je voudrais afficher le résultat d'une requete MySQL sur une table où il y
aurait par ex:

TITRE CATEGORIE
AA 1
BB 1
CC 1
DD 2
EE 3
FF 4
GG 4

....de cette facon :
Catégorie 1
AA
BB
CC
Categorie 2
DD
Categorie 3
EE
Categorie 4
FF
GG

J'utilise MySQL3.xxx

Merci

6 réponses

Avatar
Matchenul
"Zitoune" a écrit dans le message de news:
bluffq$b2m$
Bonjour,

Je voudrais afficher le résultat d'une requete MySQL sur une table où il y
aurait par ex:
....de cette facon :
Catégorie 1
AA
BB
CC
Categorie 2
DD
Categorie 3
EE
Categorie 4
FF
GG

J'utilise MySQL3.xxx

Merci
je suis fainéant, mais tu comprendras...

$cat=select distinct category from ma table
while($row=mysql_fetch_array($cat)) {
select titre from ma table where category=$row[category]
echo "categorie".$row[category].<br>;
while($row2=mysql_fetch_array($cat2)) {
echo $row2[titre]."<br>";
}
}

Je trouve que c'est un peu lourd, les autres idées m'interressent.
Bonne continuation.

Avatar
Roland
Le Tue, 07 Oct 2003 15:50:27 +0000, Zitoune a écrit :

Bonjour,

Je voudrais afficher le résultat d'une requete MySQL sur une table où il y
aurait par ex:

............


....de cette facon :
Catégorie 1
AA
BB
CC
Categorie 2
DD
........

Ca s'appelle une liste avec ruptures (un grand classique).
Je faisais ca en COBOL dans le temps ... :o)

Il suffit de tester la valeur de rupture, si c'est different (rupture)
alors on affiche la categorie et on met la valeur dans $test pour la
prochaine rupture. Il faut bien sur que la table soit triee (order by).
Par exemple (je le fait comme ca, a l'arrache !!):

$requete="select titre, categorie from 'table' order by categorie";
$test=0; /* pour le premier passage prendre une valeur impossible */
while ($ligne=mysql_fetch_array($requete)) {
if ($test != $ligne["categorie"]) { /*si different -> rupture */
echo "categorie ".$ligne["categorie"]."<br>";
/* on remet la bonne valeur dans test pour la suite */
$test=$ligne["categorie"];
}
/* on affiche le titre */
echo $ligne["titre"]."<br>";
}

est ce clair ?
(attention j'ai peut etre fait des erreurs de syntaxe !!)
--
Roland MATTEOLI
(retirer ".marreduspam" de l'adresse)

Avatar
Jean-Luc L'Hotellier
"Zitoune" a écrit dans le message de
news:bluffq$b2m$

Je voudrais afficher le résultat d'une requete MySQL sur une table où il y
aurait par ex:

TITRE CATEGORIE
AA 1
BB 1
CC 1
DD 2
EE 3
FF 4
GG 4

....de cette facon :
Catégorie 1
AA
BB
CC
Categorie 2
DD
Categorie 3
EE
Categorie 4
FF
GG


Avec la requete suivante tout simplement
SELECT categorie, titre FROM table ORDER BY categorie

Ensuite il faut gérer les ruptures sur la catégorie, si la catégorie est
différente de la catégorie précédente on affiche la catégorie.

--
Jean-Luc L'Hôtellier
http://www.ancolie-photo.com

Avatar
Thibaut Allender
"Zitoune" wrote in message
news:bluffq$b2m$

TITRE CATEGORIE
AA 1
BB 1
CC 1
DD 2
EE 3
FF 4
GG 4

....de cette facon :
Catégorie 1
AA
BB
CC
Categorie 2
DD
Categorie 3
EE
Categorie 4
FF
GG


salut

comme ca de tete :

<?php
$dbh = mysql_connect($host,$login,$pass);
mysql_select_db('mabase');

$sql = "select titre,categorie from matable order by categorie";
$res = mysql_query($sql,$dbh);

while (list($titre,$categorie) = mysql_fetch_row($res)) {
if ($categorie != $old_categorie) print "Categorie $categorie<br>n";
print "$titre<br>n";
$old_categorie = $categorie;
}
?>

a tester...

a+

--
+ thibaut allender // web design + php dev + digital photo
+ http://www.capsule.org

Avatar
F. Spiesser
Avec la requete suivante tout simplement
SELECT categorie, titre FROM table ORDER BY categorie

Je dirais plutôt :

SELECT categorie, titre FROM table ORDER BY categorie,titre

En effet, les titres semblent triés également

Avatar
Jean-Luc L'Hotellier
"F. Spiesser" a écrit dans le message de
news:3f83b610$0$20151$

Je dirais plutôt :
SELECT categorie, titre FROM table ORDER BY categorie,titre


Voui

--
Jean-Luc L'Hôtellier
http://www.ancolie-photo.com