Bon alors en fait tu as des données auxquelles tu atttribues une catégorie et une sous catégorie.
Ce qui fait donc 3 types de données différentes (des données, la catégorie et la sous catégorie) : Pour plus de clarté et de perrenité, utilise 3 tables SQL :
Par exemple :
Table DATA (je ne sais pas ce que tu met dedans)
Avec dedans (entre autre), un identifiant primaire, une cléf étrangère catégorie et une 2ème cléf étrangère pour la sous catégorie.
Les cléfs étrangères se rapportent à l'identifiant primaire de la table CATEGORIE et à l'identifiant primaire de la table SOUS_CATEGORIE.
Et par exemple, dans ta table CATEGORIE tu auras :
identifiant, nom_cat
Et par exemple, dans ta table SOUS_CATEGORIE tu auras :
identifiant, id_cat, nom_souscat
et chacun des 2 identifiants se placent en tant que cléf étrangère dans la table DATA.
Tiens, essaie ces tables & données dans un base SQL et entraine toi dessus :
DROP TABLE IF EXISTS CATEGORIE;
CREATE TABLE CATEGORIE (
id int(11) NOT NULL auto_increment,
nom_cat varchar(255) NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
INSERT INTO CATEGORIE (id, nom_cat) VALUES (1, 'catégorie1');
INSERT INTO CATEGORIE (id, nom_cat) VALUES (2, 'catégorie2');
INSERT INTO CATEGORIE (id, nom_cat) VALUES (3, 'catégorie3');
INSERT INTO CATEGORIE (id, nom_cat) VALUES (4, 'catégorie4');
DROP TABLE IF EXISTS DATA;
CREATE TABLE `DATA` (
id int(11) NOT NULL auto_increment,
id_cat int(11) NOT NULL,
id_souscat int(11) NOT NULL,
texte varchar(255) NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM AUTO_INCREMENT=4 ;
INSERT INTO DATA (id, id_cat, id_souscat, texte) VALUES (1, 1, 1, 'texte1');
INSERT INTO DATA (id, id_cat, id_souscat, texte) VALUES (2, 1, 2, 'texte2');
INSERT INTO DATA (id, id_cat, id_souscat, texte) VALUES (3, 4, 4, 'texte de la cat4 et souscat4');
DROP TABLE IF EXISTS SOUS_CATEGORIE;
CREATE TABLE SOUS_CATEGORIE (
id int(11) NOT NULL auto_increment,
id_cat int(11) default NULL,
nom_cat varchar(255) NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
INSERT INTO SOUS_CATEGORIE (id, id_cat, nom_cat) VALUES (1, 1, 'souscatégorie1 de catégorie1');
INSERT INTO SOUS_CATEGORIE (id, id_cat, nom_cat) VALUES (2, 1, 'souscatégorie2 de catégorie1');
INSERT INTO SOUS_CATEGORIE (id, id_cat, nom_cat) VALUES (3, 2, 'souscatégorie1 de catégorie2');
INSERT INTO SOUS_CATEGORIE (id, id_cat, nom_cat) VALUES (4, 4, 'souscatégorie1 de catégorie4');
Pour récupérer le nom de la catégorie, sous catégorie d'un texte, il faut utiliser les jointures dans la requete (INNER JOIN par exemple).
Bon courage.