Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/10/2007, 12h48   #1
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
Par défaut [Conception] catégories dans bdd

Bonjour.

Je fais un script "annuaire" et je voudrais rajouter dans ma bdd de donner des catégories.

Je veux dire par exemple:
Un site sur les voitures ira dans la catégorie auto/moto.

J'ai regardé sur le net et je n'ai trouvé aucun tuto.
Même sur ce forum, rien du tout.

Alors je voudrais savoir comment faire svp.
Pour faire simple, puis-je créer mes différentes table dans ma bdd, avoir menu déroulant dans mon formulaire qui sélectionne la table qui recevra les informations?
Merci
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 13h54   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Ne va surtout pas faire une table par catégories !!

Fais plutot une table catégorie qui aura comme champ:
categorie_id : identificant clé primaire de la catégorie
id_categorie_parent : identifiant de la catégorie parent
categorie_nom : nom de la catégorie.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 14h32   #3
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
Merci Raideman mais je ne m'y connais pas beaucoup et je ne comprend rien à ce que tu m'a dit.

Pourrais-je avoir plus de précision?
Merci
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 15h09   #4
Membre éclairé
 
Avatar de Linio
 
Inscription : octobre 2005
Messages : 427
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 427
Points : 304
Points : 304
Tu fais une table contenant tes catégories identifiées par un numéro (l'id) et dans ta table principale tu créé une colonne qui pointe vers cette table en mettant une colonne id_categorie qui correspond au numéro de la catégorie que tu veux.

C'est les principes de base des bases de données, tu devrais regarder des tutos avant de t'y jeter tête baissée.

Bon courage.
__________________
Linio
Linio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 15h54   #5
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
Merci Linio pour ta réponse.
J'ai regardé un peu sur le net mais j'ai pas trouvé de tuto.
Je vais regarder encore plus.
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 16h35   #6
Membre éclairé
 
Avatar de Linio
 
Inscription : octobre 2005
Messages : 427
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 427
Points : 304
Points : 304
Il y a tout ce qu'il faut sur développez.

Faut gratter un peu, prend le SQL pour débutant, tu as des tutos, ça pourra t'aider.
__________________
Linio
Linio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 11h38   #7
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
Alors j'ai trouvé un tutoriel qui m'a apprit pas mal de chose sur le SQL mais pas tout à fait ce que je voulais.

J'ai créé une table Categories avec les champs : id et nom
Et une table produit avec: id, url, marque, et categories

Mais je n'arrive pas à trouver le procédé qui va me permettre de selectionner dans mon formulaire la categorie que je souhaite enregistrer.
Je veux dire que je voudrais faire un menu déroulant dans mon formulaire avec mes différentes catégories qui s'affichent et en sélectionnant une catégorie, enregistrer le formulaire dans la BDD.

Et aussi je voudrais savoir quelle requête je dois utiliser pour afficher une catégorie sur un page et ainsi de suite.

Merci
Et si quelqu'un connait un tuto pour ce type de demande, je suis preneur.
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 13h16   #8
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Hello,

Jette un oeuil sur ce post, tu comprendras mieux comment construire le tout.
http://www.developpez.net/forums/sho...d.php?t=413531

@+
cadou
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 16h47   #9
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
Merci cadoudal56.
Ca je l'ai bien compris mais mieux avec ton exemple > encore merci.

Mais ce que je voudrais c'est quoi mettre comme requête sql pour enregistré les infos de mon formulaire dans la catégorie choisie et aussi comment l'afficher.
Car c'est un annuaire que je fais ou il y a 11 catégories puis le résultat.

Pour afficher le résultat dois-je faire 11 pages (11 catégories) .php avec le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$sql = mysql_query("SELECT * FROM categorie ORDER BY id DESC") or die ("erreur de connexion");
 
// on affiche le résultat
while($resultat = mysql_fetch_array($sql))
{
 
// affichage des données
    echo "
 
résultat
 
";
}
Merci
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 16h58   #10
Membre éclairé
 
Avatar de Linio
 
Inscription : octobre 2005
Messages : 427
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 427
Points : 304
Points : 304
Tu peux en php faire un menu déroulant, mais tu devras recharger la page.
(Une seule page, pas besoin de onze, tu traites les $_POST ou $_GET sur la même page)

Sinon si tu veux un truc plus dynamique -> javascript.
__________________
Linio
Linio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 11h29   #11
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Hello,

Il faut que tu filtres tes requètes par rapport a la catégorie...
Je vais reprendre du début cela sera plus clair....

Donc tu as une table CATEGORIES

******Table categories*******

ID INT(11) auto_increment
LIB_CAT VARCHAR(255)
ID_CAT INT(11)
***************************

Le ID_CAT te permettra de définir des sous-catégories à tes catégories.
En gros si le champ est vide, tu es dans une catégorie principale, sinon tu es dans une sous-catégorie.

Donc pour afficher toutes les catégories principales :
Code :
1
2
 
$sql = mysql_query("SELECT ID, LIB_CAT FROM categorie WHERE ID_CAT = 0 ORDER BY LIB_CAT DESC") or die ("erreur de connexion");
Et pour afficher la liste des sous catégories
Code :
1
2
3
 
$cat = $_POST['categorie'];
$sql = mysql_query("SELECT ID, LIB_CAT FROM categorie WHERE ID_CAT = ".$cat." ORDER BY LIB_CAT DESC") or die ("erreur de connexion");
Ensuite nous avons une table ANNUAIRE

******Table annuaire*******

ID INT(11) auto_increment
LIB_TITLE VARCHAR(255)
LIB_URL
ID_CAT INT(11)
***************************

Et donc pour aller chercher la liste des sites de ton annuaire pour une sous-catégorie tu fais :
Code :
1
2
3
 
$cat = $_POST['categorie'];
$sql = mysql_query("SELECT ID, LIB_TITLE, LIB_URL FROM annuaire WHERE ID_CAT = ".$cat." ORDER BY LIB_CAT DESC") or die ("erreur de connexion");
Cela te semble t-il plus clair ?

@+
cadou
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 12h47   #12
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 116
Points : 27
Points : 27
Oui ça me paraît plus clair cadoudal56. merci

Mais comment je fais pour récupérer une catégorie?
car tu me donne la requête:
Code :
1
2
$cat = $_POST['categorie'];
$sql = mysql_query("SELECT ID, LIB_TITLE, LIB_URL FROM annuaire WHERE ID_CAT = ".$cat." ORDER BY LIB_CAT DESC") or die ("erreur de connexion");
et la ça n'indique aucune catégorie et je ne sais pas comment aller la chercher.

Merci
VFone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 06h30   #13
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
Code :
1
2
3
4
5
6
7
8
9
 
Ensuite nous avons une table ANNUAIRE
 
******Table annuaire*******
 
ID INT(11) auto_increment
LIB_TITLE VARCHAR(255)
LIB_URL
ID_CAT INT(11)
Quid d'une URL pouvant etre classée dans différentes catégorie ?
Cette solution ne le permet pas.

Une table intermédiaire (ID_URL, ID_CATEGORIE) le permettrait

Bon courage
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h52.


 
 
 
 
Partenaires

Hébergement Web