PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 23-09-2012 14:27:17

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Création d'un catalogue PHP/SQL

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 :

--
-- Structure de la table `CATALOGUE_Produits`
--

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:

$db = @mysql_pconnect($Serveur_db, $User_db, $Passe_db);
@mysql_select_db($Base_name, $db);
   
@mysql_query("INSERT INTO CATALOGUE_Produits(CATEGORIE, TITRE, IMAGE, DESCRIPTION, PRIX, PIECE, POIDS, BOITE, PERS, CMD, SAISON) VALUES('$Categorie','$Titre','$File_name','$Description','$Prix_OK','$Piece','$Poids','$Boite','$Pers','$CMD','$Saison')",$db) ;

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

#2 23-09-2012 18:27:02

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'un catalogue PHP/SQL

Personne ne sait me dire si je commence bien ou pas? sad

Hors ligne

#3 23-09-2012 18:33:19

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Création d'un catalogue PHP/SQL

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

#4 23-09-2012 19:24:13

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'un catalogue PHP/SQL

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

#5 23-09-2012 20:38:41

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Création d'un catalogue PHP/SQL

Fabdu57 a écrit :

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

#6 24-09-2012 07:37:11

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'un catalogue PHP/SQL

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

#7 24-09-2012 08:44:20

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Création d'un catalogue PHP/SQL

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

#8 24-09-2012 09:37:07

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'un catalogue PHP/SQL

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

#9 24-09-2012 13:50:40

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Création d'un catalogue PHP/SQL

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

#10 24-09-2012 18:41:22

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'un catalogue PHP/SQL

J'ai mis TEXT car c'était celle qui me semblait la plus judicieuse. Aprés sans doute ais-je fais un mauvais choix smile.

Il est vrai que je ne dépasserai jamais les 8000 caractères aloué par le VARCHAR, donc je peux l'utiliser sans soucis smile. Est-ce que ceci est pénalisant dans la BDD si je laisse en texte en fin de compte ?

Hors ligne

#11 24-09-2012 21:05:49

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Création d'un catalogue PHP/SQL

Fabdu57 a écrit :

J'ai mis TEXT car c'était celle qui me semblait la plus judicieuse. Après sans doute ais-je fais un mauvais choix smile.

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 smile. 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

#12 24-09-2012 21:20:51

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'un catalogue PHP/SQL

La description pourra avoir une longueur supérieure à 100.
Par contre l'image elle non.

Hors ligne

#13 24-09-2012 21:22:11

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Création d'un catalogue PHP/SQL

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

#14 25-09-2012 06:03:03

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'un catalogue PHP/SQL

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

#15 25-09-2012 06:19:26

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Création d'un catalogue PHP/SQL

Fabdu57 a écrit :

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

#16 26-09-2012 15:20:42

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'un catalogue PHP/SQL

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

#17 28-09-2012 18:24:37

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'un catalogue PHP/SQL

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

Pied de page des forums