IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Script PHP et SQL : Catalogue de produit


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Par défaut Script PHP et SQL : Catalogue de produit
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    -- 
    -- 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:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $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.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Par défaut
    Sur la table j'ai deux remarques :
    1 : éventuellement créer une table des catégories (avec juste 2 champs un ID et un libelle) et ne mettre dans la table principale que l'ID. Cela permet de changer le nom des catégories sans tout casser et cela évite les erreurs de frappe.

    2 : le champ Description devrait être assez long : vous avez des Longtext qui permettent de saisir un descriptif déaillé.

    Pour les photos je vous conseille de ne mettre dans la base que le nom exact du fichier image et de ranger vos images dans un répertoire à part
    Par contre à réaliser cela en PHP et surtout faire ensuite quelque chose d'attrayant risque de ne pas être facile.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Par défaut
    Citation Envoyé par Delphi-ne Voir le message
    Sur la table j'ai deux remarques :
    1 : éventuellement créer une table des catégories (avec juste 2 champs un ID et un libelle) et ne mettre dans la table principale que l'ID. Cela permet de changer le nom des catégories sans tout casser et cela évite les erreurs de frappe.

    2 : le champ Description devrait être assez long : vous avez des Longtext qui permettent de saisir un descriptif déaillé.

    Pour les photos je vous conseille de ne mettre dans la base que le nom exact du fichier image et de ranger vos images dans un répertoire à part
    Par contre à réaliser cela en PHP et surtout faire ensuite quelque chose d'attrayant risque de ne pas être facile.
    Mais aprés comment lier les deux tables en fin de compte ? Sachant que en théorie les catégories ne changeront pas ensuite.

    Concernant les images, en effet je ne stock que le nom de l'image, qui est dans un répertoire sur le FTP.

    C'est sur que je sais que ca ne sera pas facile lol, mais je voudrais quand même essayer car je ne trouves aucun script tout fait.

    Merci d'avance,
    Fab.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Par défaut
    Voilà une requete sur 2 tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select *
    From CATALOGUE_Produits
    Join  CATALOGUE_Categories 
      On CATALOGUE_Produits.CATEGORIE = CATALOGUE_Categories.id
    L'idée est de mettre dans la clause le champ de la première table ) au champ de la seconde

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Comme le souligne Delphi-ne, il serait judicieux de gérer les catégories dans une table indépendante.

    Plusieurs remarques supplémentaires :
    - essayer si possible d'encoder tout en UTF-8 (base de données, fichiers php js css...),
    - comme c'est parti, tu vas créer une base de données relationnelle, je te conseille très fortement de remplacer le moteur MyISAM par InnoDB qui est plus spécifique aux bases relationnelles,
    - et fais attention au données temporisées : le prix va certainement augmenter, il serait dommage d'avoir à créer une nouvelle référence juste pour cette raison. De même, pour le poids... (pas sûr, à voir)

    Bon courage

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Par défaut
    fais attention au données temporisées
    Concrêtement si j'ai bien compris cela reviendrait à créer une table juste pour les prix avec comme structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Date de prise d'effet du prix DateTime
    Date de fin d'effet : DateTime
    ID Produit : BigInt
    Prix Decimal
    et pour les requetes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Select *
    From CATALOGUE_Produits
    Join  CATALOGUE_Categories 
      On CATALOGUE_Produits.CATEGORIE = CATALOGUE_Categories.id
    Join CATALOGUE_Prix 
      On CATALOGUE_Produits.ID = CATALOGUE_Prix.ID Produit 
     And Now Between Date de prise d'effet And Date de fin d'effet
    Il va s'amuser. C'est effectivement très clean mais cela complexifie pas mal les choses. Il faut vraiment voir si fonctionnellement le jeu en vaut la peine.
    Ce qu'il faut donc c'est se définir une règle pour le nommage des champs dans chaque table.
    Au moins si le nombre de tables augmente cela restera clair

Discussions similaires

  1. [MySQL] Mon script php et sql genere une erreur pourquoi ?
    Par booster71 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/07/2014, 08h05
  2. Requête SQL - Catalogue de produits
    Par isa28 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/02/2009, 20h52
  3. [SQL] Script PHP qui marche pas !
    Par Diabless6 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 12/02/2007, 16h28
  4. [SQL-Server] Erreur 500 lors d'un script php avec sql
    Par DeusDavid dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/12/2006, 18h47
  5. [SQL] Traitement de plusieurs requêtes .SQL dans un script PHP?
    Par M4x dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/03/2006, 19h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo