Accueil > Forum > > > > Aide pour les chaines de caracteres
Aide pour les chaines de caracteres
jeudi 22 mai 2008 à 18:27:47 |
Aide pour les chaines de caracteres

ngnikos
|
Bonjour à tous ! Je réalise actuellement un site dans des délais assez courts et je dois donc trouver un moyen de gérer la base de données pour chaque article, en y insérant tous les coloris, tailles et quantités disponibles ... J'ai opté pour un formulaire de ce type : - Coloris 1 - Taille 1 : Quantité 1 - Taille 2 : Quantité 2 - Coloris 2 - ... Le tout inséré dans la base de données sous la forme /coloris;taille1:quantite1;taille2:quantite2;/coloris2;... ce qui donne des chaines de caractères de ce type : /noir-gris;3XS:10;XS:10;S:10;L:10;XL:9;/rouge-marine;XS:5;S:5;M:5;L:9;XL:5;/ Je pense que c'est la meilleure solution pour stocker efficacement un si grand nombre de données (en effet, il y a beaucoup d'articles et chaque article a un nombre de coloris, tailles et quantités différents ; la chaîne ainsi créée n'aura donc jamais la même taille) Le problème est que cette chaîne est quasi inutilisable pour moi. Par exemple, je souhaiterais connaître la quantité totale d'un article ; ça revient à additionner toutes les valeurs de la chaîne comprises entre ":" et ";" ... Mais comment mettre ces valeurs de côté et les additionner, alors que la chaîne peut avoir une taille aléatoire ? Merci d'avance pour vos réponses !
|
|
jeudi 22 mai 2008 à 18:52:48 |
Re : Aide pour les chaines de caracteres

neigedhiver
|
Réponse acceptée !
Salut, C'est pas facile de développer un site marchand quand on n'a aucune base d'analyse... Tu devrais commencer par t'intéresser à des méthodes d'analyses comme Merise (désolé si j'en parle souvent). Cela dit, si t'as pas beaucoup de temps devant toi... Si c'est professionnel, demande un CIF. Vite fait... Il faut plusieurs tables. Une pour les articles. Chaque article ayant un identifiant unique. Une pour les coloris, une autre pour les tailles, etc Dans chaque table (coloris, taille, etc) il faut un enregistrement par couple article/taille, article/coloris, etc. Cela te permet de savoir pour chaque article dans quelle taille il est dispo, dans quelle couleur, etc. J'ai pas le temps de faire un MCD, là, mais sincèrement, documente toi sur les méthodes d'analyse, ça te sera très utile. Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
|
|
jeudi 22 mai 2008 à 19:14:09 |
Re : Aide pour les chaines de caracteres

malalam
|
Hello,
je suis d'accord avec Neige. Ceci dit, exemples pour traiter tes chaînes : <?php $sChaine = '/noir-gris;3XS:10;XS:10;S:10;L:10;XL:9;/rouge-marine;XS:5;S:5;M:5;L:9;XL:5;/'; // Total articles preg_match_all('`:([\d]+);`', $sChaine, $aRes); if(!empty($aRes[1])) { print_r($aRes[1]); echo $iSum = array_sum($aRes[1]), "\n"; } // Total rouge-marine $iPosArticle = strpos($sChaine, 'rouge-marine'); $iPosStop = strpos($sChaine, '/', $iPosArticle); $sNewChaine = substr($sChaine, $iPosArticle, $iPosStop); preg_match_all('`:([\d]+);`', $sNewChaine, $aRes); if(!empty($aRes[1])) { print_r($aRes[1]); echo $iSum = array_sum($aRes[1]), "\n"; } // Total noir-gris $iPosArticle = strpos($sChaine, 'noir-gris'); $iPosStop = strpos($sChaine, '/', $iPosArticle); $sNewChaine = substr($sChaine, $iPosArticle, $iPosStop); preg_match_all('`:([\d]+);`', $sNewChaine, $aRes); if(!empty($aRes[1])) { print_r($aRes[1]); echo $iSum = array_sum($aRes[1]), "\n"; } ?>
|
|
jeudi 22 mai 2008 à 19:39:19 |
Re : Aide pour les chaines de caracteres

ngnikos
|
J'avais effecrtivement pensé à une table à part pour simplifier, mais j'ai cru possible la simplification dans une seule chaîne. En fait, ça complique plus qu'autre chose ...
Je ne comprends pas ta méthode Neige : si chaque coloris et taille sont sur des tables différentes, comment savoir si telle taille correspond à tel coloris ?
J'opterais plutôt pour un mélange des deux méthodes :
- une table contenant toutes les informations sur l'article : nom, description, prix, référence ... - une autre table contenant 4 champs : référence, coloris, tailles et quantités. Ainsi, ca nous donnerait : => REF12465 / vert / S,XL,L / 2,5,18 => REF12465 / vert / M,XL,L,XXL / 2,5,18,12 => REF24678 / rouge / XL,L / 25,18 ...
Il suffirait de ressortir sous forme d'un Array les tailles et quantités correspondantes à chaque couleur ; ainsi tout sera contenu dans une table.
Je ne garantis pas que ma méthode soit plus simple ou efficace, à vous de me dire quoi ^^
Merci d'avance !
|
|
jeudi 22 mai 2008 à 20:03:34 |
Re : Aide pour les chaines de caracteres

malalam
|
Vouloir absolument tout mettre dans une seule table est une erreur, vraiment. Tu auras plus d'enregistrements conséquents. Pour les fringues, c'est relativement simple : comme le dit neige, une table articles, une table taille, une table coloris.
Et moi je verrais plutôt une table de jointure article/coloris/taille (avec juste les ID donc).
Mais le tout est de savoir si tu n'as QUE des fringues...parce que si ce n'est pas le cas, il faut changer de tactique légèrement (et pour savoir laquelle adopter, il faut connaître l'exhaustivité des caractéristiques possible de tes autres types d'article).
|
|
jeudi 22 mai 2008 à 20:09:22 |
Re : Aide pour les chaines de caracteres

ngnikos
|
Il y a de tout : vetements, equipements, ballons ...
Vu la diversité, j'ai donc laissé une totale liberté à la personne qui gère le magasin pour remplir les infos sur les articles : la personne choisit elle-même le nombre de coloris, le nom de ces coloris, puis le nombre de tailles, le nom de ces tailles (XXL, Taille 4, 24 cm de diamètre pour un ballon par exemple ...), et enfin la quantité correspondante à cette taille. La personne peut aussi, en cas d'article unique ou simple, juste entre une simple quantité (sans taille ni colori donc).
Il faut donc trouver un système de table pouvant tout regrouper et cela simplement. Peut etre l'idée des ID est la bonne, pourrais-tu développer un peu plus, je ne comprends pas où tu veux en venir.
Merci encore !
|
|
jeudi 22 mai 2008 à 22:51:30 |
Re : Aide pour les chaines de caracteres

malalam
|
Table articles
art_id
art_libelle
...
Table tailles:
taille_id
taille_libelle
Table coloris:
color_id
color_libelle
Et ce que propose Neige :
Table art_tailles:
art_id
taille_id
Table art_coloris
art_id
color_id
La mienne :
table art_props
art_id
color_id
taille_id
Mais la solution de Neige a l'avantage de ne pas obliger un article a avoir une taille ET un coloris, et c'est très facilement gérable grâce à des jointures de type LEFT JOIN.
|
|
jeudi 22 mai 2008 à 22:56:59 |
Re : Aide pour les chaines de caracteres

malalam
|
Pardon j'ai envoyé trop vite et je n'ai pas fini ma table.
Ma solution a quand même un avantage : cela te permet de gérer la quantité plus facilement :
table art_props
art_props_id
art_id
color_id
taille_id
art_quantite
Parce que dans articles tu auras par exemple
1, tee-shirt Marque X
2, polo Marque Y
etc...
ce sont des articles génériques. Et tu ne donc pas gérer leur quantité ici.
Avec la solution de Neige, gérer la quantité est difficile, parce qu'il FAUT qu'un article soit unique, pour ça.
Du coup tu peux simplifier, (c'est ce que je ferais sans doute):
table articles :
art_id
art_libelle
art_quantite
taille_id
color_id
...
et les tables tailles et coloris restent les mêmes, mais tu n'as plus de jointure. Ce qui est le plus logique, chaque article ayant une seule taille et un seul coloris.
|
|
jeudi 22 mai 2008 à 23:06:45 |
Re : Aide pour les chaines de caracteres

ngnikos
|
Merci pour ces réponses.
Ce qui est bon à savoir, c'est que non seulement les tailles et coloris n'ont pas besoin d'être mis dans une table à part avec un ID (en effet, les articles ne seront pas classés par coloris ou taille) ; et qu'en plus cette méthode pourrait être non adaptée, puisque vu le nombre d'articles différents, il y aura énormement de tailles et coloris différents.
Je pense que deux tables suffisent :
- table articles avec reference, nom, description, prix ... - table qui rassemble coloris, tailles et quantités avec reference, coloris, taille et quantité
Ca permettrait de modifier les quantités sans entrer dans la table des propriétés et vice-verca ; et le lien est fait entre les deux grâce à la référence du produit.
Qu'en pensez-vous ?
|
|
jeudi 22 mai 2008 à 23:20:08 |
Re : Aide pour les chaines de caracteres

malalam
|
Ce qui t'oblige à répéter des chaînes de caractères de multiples fois (nom du coloris, nom de la raille, etc), au lieu d'utiliser des ID, bien plus légers.
Ce n'est pas une bonne solution d'après moi.
|
|
Cette discussion est classée dans : taille, données, chaines, chaîne, coloris
Répondre à ce message
Sujets en rapport avec ce message
Gestion des donneés reçues par fsockopen [ par adess00 ]
Bonjour,Je récupere des données par fsockopen sur un serveur contenant le code que je récupere.Le problème est que sur certain serveurs, les données r
popup de taille variable [ par catem ]
Bonsoir,Est-il possible de faire apparaître une fenêtre -en PHP- de dimenssion variable (en fonction de la taille de la photo + commentaires qui vont
Connexion sl distante [ par azqsazqs ]
Bonjour, je dispose de deux site actuellement et leurs bases de données sont censé intéragir.J'ai sur mon site A, une page Php qui contient des paramè
Pb base de données sql php [ par maxxou56 ]
Je souhaiterais réalisé une page php a partir dune base de données Voici mes deux tables:ARTISTE (nom_artiste, image_artiste, type_musique, nationalit
requetes multitables liées par clés etrangeres en mysql [ par tricour ]
Bonjour, je suis en train de mettre en ligne une base de données clients avec 11 tables en Mysql.J'ai des contraintes pour certaines tables. 1 client
Récupérer données Excel [ par TheGorgo ]
Salut à tous. Je voudrais savoir si il est possible de récupérer des données à partir d'un fichier xls. Et, tant qu'on y est, si c'est possible, que
google map et base de données [ par jcpenou ]
Bonjour, j 'ai un petit probleme pour afficher tous les points sur une page de mon site utilisant google map. Environ 120 points stockées dans mysql (
upload d'une image dans une BDD avec blob [ par thiebaut35 ]
Je débute en PHP et suis déjà bloqué ! Commence pas bien c't'affaire !Résumé:je souhaite uploader une image via un formulaire <form enctype = "multip
Recupérer des données d'un flux rss [ par Damiou ]
Voila j'écris ce post parce que j'ai bsoin de votre aide.Je voudrais récuperer certaines données météorlogiques qui nous sont données à partir d'un fl
Demande d'idées pour traiter un flux important de données [ par johnkro ]
Bonjour tout le monde, je suis à la recherche d'idées pour traiter un flux important de données, provenant de serveurs. Je m'explique. Je suis en sta
Livres en rapport
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : SONDAGE..RE : SONDAGE.. par phpAnonyme
Cliquez pour lire la suite par phpAnonyme RE : SONDAGE..RE : SONDAGE.. par TychoBrahe
Cliquez pour lire la suite par TychoBrahe
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|