Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour à tous les développeurs,
Je viens aujourd'hui vers vous afin de quémander de l'aide.
---------------------------------------------------------
Je vous explique en quelques étapes ce que je souhaites réaliser :
Je souhaite en fin de compte réaliser un "catalogue" présentant mes produits de ma boulangerie, selon des catégorie définies.
J'ai pour le moment créé une table SQL, néanmoins je ne sais pas si elle est bien faire en fin de compte :
CREATE TABLE `CATALOGUE_Produits` (
`ID` int(10) unsigned NOT NULL auto_increment,
`CATEGORIE` text collate latin1_german2_ci NOT NULL,
`TITRE` text collate latin1_german2_ci NOT NULL,
`IMAGE` text collate latin1_german2_ci NOT NULL,
`DESCRIPTION` text collate latin1_german2_ci NOT NULL,
`PRIX` decimal(10,2) NOT NULL,
`PIECE` int(2) NOT NULL,
`POIDS` int(2) NOT NULL,
`BOITE` int(2) NOT NULL,
`PERS` int(2) NOT NULL,
`CMD` int(2) NOT NULL,
`SAISON` int(2) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=6 ;
En quelques lignes, j'arrive alimenter la BDD sans soucis:
Je renseigne dans la colonne "CATEGORIE" le nom de ma catégorie qui me servira par la suite a afficher les résultats selon les catégories choisies. Chaque catégorie sera affiché sur une page différente, donc je réaliserai des requêtes type "Afficher ... Where CATEGORIE == ....".
---------------------------------------------------------
Mes questions sont donc multiples :
1. Est-ce que je commence bien selon ce que je veux faire? Ou alors je vais droit dans le mur, et il y a une meilleure solution ?
2. Est-ce possible d'avoir une aide pas a pas, ou je code, et on me dit si ainsi ca va, ou alors si il n'y a pas meilleure solution?
Je suis prêt a remercier la personne qui m'aidera par mes conaissances ou mon aide en retour (graphisme, flash, ...).
Merci d'avance,
Fab.
Dernière modification par Fabdu57 (23-09-2012 16:16:13)
Hors ligne
Personne ne sait me dire si je commence bien ou pas?
Hors ligne
Saluton,
Ton post appellerait de nombreuses remarques, je me contenterai des trois suivantes :
-Les catégories constituent une entité à part entière et, à ce titre, devraient être représentées dans une table dans la base de données, seul leur identifiant, en tant que clé étrangère, subsisterait dans la table produits.
-Tu ne devrais pas utiliser l'opérateur PHP @ en préfixe des fonctions, cela masque les messages d'avertissements, et les messages d'erreurs ce qui revient à conduire une voiture les yeux bandés.
-Tu devrais utiliser PDO pour accéder à ta base de données.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonsoir,
Concernant les soucis avec les @, je suis d'accords et vais alors y remédier dans ce cas.
Néanmoins, je ne conaissait pas PDO. Je vais chercher de la DOC.
SInon quels sont les autres remarques ?
Dernière modification par Fabdu57 (23-09-2012 19:56:11)
Hors ligne
Sinon quelles sont les autres remarques ?
Déjà, je t'ai fait une suggestion concernant ta table produits.
La modélisation des données, même pour quelque chose qui semble simple, voire simpliste, demande davantage de rigueur intellectuelle.
Je te conseille de prendre le temps de lire cette traduction que j'ai commise du Chapitre 6 Database Design de Using SQLite by Jay A. Kreibich Ed. O'Reilly.
Par exemple, dans ta table, que représentent les colonnes `PRIX`, `PIECE`, `POIDS`, `BOITE`, `PERS`et `CMD` ?
Il n'y a que toi qui puisses répondre à cette question dont dépend la pertinence de ta structure au regard du respect des formes normales.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Je vais attentivement lire ce que tu me propose.
Concernant les valeurs des colonnes :
PRIX : Prix en euros de l'article (valeur numérique a virgule)
PIECE : Si unité de vente PIECE, alors la valeur = 1, sinon valeur =0 (même logique binaire pour POIDS, BOITE, PERS et CMD)
Je ne sais pas si c'est la meilleure solution, néanmoins ca me parrait etre la plus simple lol.
Hors ligne
Peux-tu expliciter les colonnes PERS et CMD, quels concepts se cachent derrière ces abbréviations ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
CMD = Commande (en clair produit uniquement sur commande).
PERS = Mauvais titre que j'ai noté en fin de compte... Je vais donc modifier ce titre en "PART". En fin de compte vendu en part.
Hors ligne
Pourquoi avoir mis les colonnes `TITRE`et `IMAGE` en type TEXT ? Un VARCHAR serait suffisant, non ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
J'ai mis TEXT car c'était celle qui me semblait la plus judicieuse. Aprés sans doute ais-je fais un mauvais choix .
Il est vrai que je ne dépasserai jamais les 8000 caractères aloué par le VARCHAR, donc je peux l'utiliser sans soucis . Est-ce que ceci est pénalisant dans la BDD si je laisse en texte en fin de compte ?
Hors ligne
J'ai mis TEXT car c'était celle qui me semblait la plus judicieuse. Après sans doute ais-je fais un mauvais choix .
Il est vrai que je ne dépasserai jamais les 8000 caractères alloués par le VARCHAR, donc je peux l'utiliser sans souci . Est-ce que ceci est pénalisant dans la BDD si je laisse en texte en fin de compte ?
Oui, notamment pour les recherches indexées.
En outre, il faut déclarer une longueur maxi pour les colonnes de type VARCHAR. Dans les deux cas je ne vois pas la nécessité d'aller au-delà de VARCHAR(100).
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
La description pourra avoir une longueur supérieure à 100.
Par contre l'image elle non.
Hors ligne
Je ne parlais pas de la description mais du TITRE.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Ah d'accords autant pour moi. Milles excuses.
Donc voila, j'ai midifié la BDD pour la partye "type d'indexage". Maintenant, si j'ai bien compris, je dois créer une table de catégorie.
Si j'ai bien compris le tuto (http://phpdebutant.org/article67.php), SQL va dont faite la correspondance, avec le code JOINT, entre deux colonnes d'une table différente, mais ou la donnée est la même ? Je ne sais pas si je m'exprime bien en fin de compte lol...
Hors ligne
Je ne sais pas si je m'exprime bien en fin de compte lol...
Cet interrogation implicite est une forme d'aveu.
Non, tu ne t'exprimes pas correctement.
C'est probablement du au fait que, comme le laissais entendre le grand Nicolas (Boileau, pas le nabot de lignée hongroise) dans son art Poétique :
Ce qui se conçoit bien s'énonce clairement, et les mots, pour le dire, arrivent aisément.
En fait, dans l'absolu, c'est au moment de la déclaration des contraintes sur les tables de la base de données que sera définie la dépendance de la colonne CATEGORIE de la table produits comme clé étrangère issu de la colonne PRIMARY KEY de la table categories.
La jointure entre les deux tables (via ces colonnes) devra être construite au sein de chacune des requêtes qui souhaitera la réaliser par le biais d'une des syntaxes adaptées [LEFT|RIGHT] [INNER|OUTER] JOIN.
Pour en savoir davantage sur les jointures en SQL, je t'engage à lire cet excellent tutoriel de SQL Pro : Le SQL de A à Z Les jointures ou comment faire des requêtes sur plusieurs tables.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Ok merci.
Je vais dans ce cas commencer par créer la SQL tel vos conseils, et ensuite reviendrai vers vous d'ici la fin de la semaine au plus tard afin de vous montrer ou j'en suis afin d'avoir vos avis si celà ne vous dérange pas.
Merci d'avance,
Fab
Hors ligne
Bonsoir.
Je me penche actuellement sur un autre soucis, plus facile a régler je penses, et me remettrai ensuite sur le code. Je pense d'ici mi octobre.
Merci de l'aide encore,
Fabrice.
Hors ligne
Pages :: 1