yazerty55
Messages postés13Date d'inscriptionvendredi 7 septembre 2007StatutMembreDernière intervention17 septembre 2007
-
16 sept. 2007 à 22:56
yazerty55
Messages postés13Date d'inscriptionvendredi 7 septembre 2007StatutMembreDernière intervention17 septembre 2007
-
17 sept. 2007 à 14:06
Bonjour,
Grâce à l'aide de phpcs j'ai réussi à créer un fonction qui affiche la liste des catégories d'un petit annuaire que je suis en train de créer. Mais j'ai un problème d'ordre d'affichage de mes catégories.
le code suivant : <?php
echo "<select name= "category">
<option value="">Catégories :</option>";
// Séctionner les catégories en dessous de l'actuelle
$sql ="SELECT * FROM categories";
$req = mysql_query($sql) or die(mysql_error());
while ($db_data = mysql_fetch_assoc($req)) {
$category_id = $db_data['category_id'];
$sql_sub ="SELECT * FROM categories WHERE parent_num=$category_id ORDER BY parent_num";
$req_sub = mysql_query($sql_sub) or die(mysql_error());
if (mysql_num_rows($req_sub)>0) {
while ($db_data_sub = mysql_fetch_assoc($req_sub)) {
cat_tree_add ($db_data_sub['category_id'], $category);
}
}
}
echo "</select>";
?>
affiche mes catégories correctement mais pas dans un ordre classé. Par exemple j'ai :
Loisits et divertissements > Sport
Loisits et divertissements > Tourisme
Loisits et divertissements > Sport > Rugby
Loisits et divertissements > Sport > Foot
Or bien évidemment je voudrais faire : Loisits et divertissements > Tourisme
Loisits et divertissements > Sport
Loisits et divertissements > Sport > Rugby
Loisits et divertissements > Sport > Foot
Pour information ma table categories est faite de telle manière : CREATE TABLE `categories` (
`category_id` int(11) NOT NULL,
`parent_num` int(11) NOT NULL,
`category` varchar(100) NOT NULL,
`category_desc` text NOT NULL
) ENGINE =MyISAM DEFAULT CHARSET=utf8;
--
-- Contenu de la table `categories`
--
INSERT INTO `categories` VALUES (1, 0, 'Art & Culture', '');
INSERT INTO `categories` VALUES (2, 1, 'Musées', '');
INSERT INTO `categories` VALUES (3, 1, 'Musique', '');
(...)
INSERT INTO `categories` VALUES (16, 0, 'Loisirs & divertissement', '');
(...)
INSERT INTO `categories` VALUES (23, 6, 'Santé', '');
INSERT INTO `categories` VALUES (24, 7, 'Annuaires liens durs', '');
INSERT INTO `categories` VALUES (25, 0, 'Divers', '');
INSERT INTO `categories` VALUES (26, 22, 'Rugby', '');
INSERT INTO `categories` VALUES (27, 22, 'Foot', '');
INSERT INTO `categories` VALUES (28, 0, 'BD blogs', '');
INSERT INTO `categories` VALUES (29, 0, 'Politique', '');
INSERT INTO `categories` VALUES (30, 29, 'Droit', '');
INSERT INTO `categories` VALUES (31, 29, 'Personnalités politiques', '');
INSERT INTO `categories` VALUES (32, 29, 'Institutions', '');
INSERT INTO `categories` VALUES (33, 25, 'Animaux', '');
INSERT INTO `categories` VALUES (34, 16, 'Tourisme', '');
Je ne comprends pas comment ordonner mes requêtes SQL pour avoir une sortie ordonnée correctement, groupée comme il le faut.J'ai déjà essayé plusieurs tatonnements mais aucun n'a été satisfaisant :-/...
yazerty55
Messages postés13Date d'inscriptionvendredi 7 septembre 2007StatutMembreDernière intervention17 septembre 2007 17 sept. 2007 à 14:06
Merci pour ta réponse mais malheureusement je comprends à peu près la première partie. Mais les suivantes pas du tout, ça devient trop complexe pour un simple débutant comme moi :-/.
J'ai fait ça par une méthode récursive parce qu'on m'a dit que ça fonctionnait et ça fonctionne apparemment presque bien ce que j'ai fait, sauf le regroupement par parent.