Re: [requêtes SQL] construction ...

Yop,

J'ai galèré a faire un truc potable pour mon annuaire et j'ai finalement opté pour cette solution :

Une table unique pour catégorie et sous catégories. Simple mais efficace.

Voici la structure de la table ainsi que les 10 premiers enregistrement qui appartiennent tous a la même catégorie principale.

CREATE TABLE IF NOT EXISTS `annu_categorie` (
`id_categorie` bigint(20) NOT NULL auto_increment,
`pere` text character set latin1 collate latin1_general_ci,
`ascendance` text character set latin1 collate latin1_general_ci,
`categorie` text character set latin1 collate latin1_general_ci,
`arborescense` text character set latin1 collate latin1_general_ci,
`pere_id` bigint(20) default NULL,
`arbonum` text character set latin1 collate latin1_general_ci,
`nbsite` int(11) default '0',
PRIMARY KEY (`id_categorie`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=125 ;

--
-- Contenu de la table `annu_categorie`
--

INSERT INTO `annu_categorie` (`id_categorie`, `pere`, `ascendance`, `categorie`, `arborescense`, `pere_id`, `arbonum`, `nbsite`) VALUES
(1, 'aucune', 'aucune', 'Achats en ligne', 'Achat en ligne', 0, '1', 39),
(2, 'Achats en ligne', 'Achat en ligne', 'Achats groupés', 'Achats en ligne > Achats groupés', 1, '1>2', 0),
(3, 'Achats en ligne', 'Achats en ligne', 'Acheter des bijoux', 'Achats en ligne > Acheter des bijoux', 1, '1>3', 4),
(4, 'Acheter des Bijoux', 'Achats en ligne > Acheter des Bijoux > Bijoux de luxe', 'Bijoux de luxe', 'Achats en ligne > Acheter des Bijoux > Bijoux de luxe', 3, '1>3>4', 0),
(5, 'Acheter des Bijoux', 'Achats en ligne > Acheter des Bijoux', 'Bijoux fantaisie', 'Achats en ligne > Acheter des Bijoux > Bijoux fantaisie', 3, '1>3>5', 1),
(6, 'Acheter des Bijoux', 'Achats en ligne > Acheter des Bijoux\r\n', 'Bijoux piercing\r\n', 'Achats en ligne > Acheter des Bijoux > Bijoux piercing\r\n', 3, '1>3>6', 3),
(7, 'Achats en ligne', 'Achats en ligne', 'Acheter des Chaussures', 'Achats en ligne > Acheter des Chaussures', 1, '1>7', 0),
(8, 'Achats en ligne', 'Achats en ligne', 'Acheter des livres', 'Achats en ligne>Acheter des livres', 1, '1>8', 0),
(9, 'Achats en ligne', 'Achats en ligne', 'Acheter du thé en ligne', 'Achats en ligne>Acheter du thé en ligne', 1, '1>9', 0),
(10, 'Achats en ligne', 'Achats en ligne', 'Acheter une voiture', 'Achats en ligne>Acheter une voiture', 1, '1>10', 2);

Ensuite tu n'a plus qu'a faire un petit code tout  *** CENSURED ***  en php et hop tu affiche tout ce que tu souhaite :p

Si cela peut t'aider.

PS : LA structure de la table n'est pas de moi et je ne me sert pas de tout comme arborescence et arbonum mais je l'avais gardé au cas ou un jour j'aurais besoin de faire un truc plus sophistiqué.


Sujet écrit par Ancien membre le dimanche 8 mars 2009 à 18:20

[ Imprimer ] - [ Fermer la fenêtre ]