begin process at 2012 02 13 03:31:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Aide pour les chaines de caracteres


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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.

1 2

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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 11,372 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales