Une petite question sur les variables

[Résolu]
Signaler
Messages postés
164
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
7 octobre 2009
-
Messages postés
24
Date d'inscription
samedi 21 juin 2003
Statut
Membre
Dernière intervention
24 mars 2008
-
je recupere des chaines de caractere dans un tableau, ces chaines vienne de base de donnée.

est'il possible de transformer ces chaines en variale?

par exemple: j'ai 2 bases de donnée, une avec un misting de matos et l'autre avec la quantité de chaque piece.

dans la 1ere base je recupere le nom d'une piece qui est suivi par un
numero d'index (ce qui fait que pour recuperer tous les nom de toutes
les pieces je fais un FOR) et je mes tous ca dans un tableau
"$piece[$i]".

dans "$piece[1]" j'ai la chaine de caractere "pince", je voudrais
generer automatiquement la variable "$pince" à partir de $piece[1] afin
de recupere une quantité qui ce situe dans une autre base de donnée.

en esperant avoir étais assez explicite dans mon explication je remercie toutes personnes qui voudras bien alumer ma lumiere.



cacoucatatonique

8 réponses

Messages postés
24
Date d'inscription
samedi 21 juin 2003
Statut
Membre
Dernière intervention
24 mars 2008

Salut,

non non j'ai aps l'impression qu'il confonde base et table ...

si tu fais une base avec dedans une table que tu appelles par exemple stock

un champ ID, un champ TYPE, un QUANTITE

ex: 1 pince 15
2 marteau 8

avec en un seule boucle tu recuperes tout , le type de materiel et son stock ....

pourquoi te compliqué la vie avec deux bases et des boucles dans tous les sens , qui plus est comme je l'ai dit plus haut, un while est bien plus adapté ;)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Messages postés
24
Date d'inscription
samedi 21 juin 2003
Statut
Membre
Dernière intervention
24 mars 2008

C'est possible et regarde du cote des variables dynamiques ;)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Aussi. Mais c'est vite le bordel, les variables dynamiques.



Ceci dit, je viens de te lire plus attentivement...tu veux que $pince contienne quoi...?

Et pourquoi avoir besoin de $pince pour récupérer la quantité de pinces, se trouvant sur une autre base ?
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
franchement, étant donné qu'un nom de variable importe peu...



Enfin voila, autant chercher à coder proprement, et à maitriser le
mieux possible son code (en évitant de créer des variables dont le nom
est variable par exemple.... c'est dangereux...)

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
24
Date d'inscription
samedi 21 juin 2003
Statut
Membre
Dernière intervention
24 mars 2008

bon moi deja je comprends pas pourquoi deux bases ???

Une table suffit ...

Ensuite, les variables dynamiques quand on les maitrises ca marche nikel ... mais dans ton cas c'est vraiment pas necessaire ...
En plus maitriser le code moi j'entends pas la ... propreté et performance, et ta boucle for c'est plus lourd que de faire un
while($d = mysql_fetch_array($sql))
{
recuperation de tes donnees en base
}

Moi c'est ce que je ferais ...
Messages postés
164
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
7 octobre 2009

salut a tous.

alors dans ma variable pince il y a la quantité de pince qui ce trouve
dans le stock, et j'ai 2 base de donnée car dans une je reference
toutes les pieces que l'on utilise et dans la seconde il y a les
quantitées, pour la recherche de mes quantitées de produit je parcoure
la 1ere base avec un for et avec le nom du produit je vai recuperer la
quantité dans la bdd du stock. Avec mes 2 bases si il faut rajouter un
produit ou en enlever un je le fait dans les 2 bases.

Parcontre, est'il possible d'utiliser le contenue de "$piece[$i]"
comme variable sans passer par extract? de tel sorte à eviter de taper
les 100 variables qui representes chaqu'une un produit en stock!!

a moin que quelqu'un à une autre idée, je suis en train de développer
des pages de gestions de stock, avec au moins une centaine de
consomable ( ce soft est pour un service chimie).

cacoucatatonique
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

Tu ne confonds pas base et table hein ? Ce sont bien 2 bases séparées? Je ne vois pas l'intérêt dans ce cas.
En fait, 1 table suffirait même, vu que tu as une relation 1,1 sur les produits et sur leur quantité. Je te donne un exemple :

table PRODUITS : PROD_ID (clef), PROD_NOM, PROD_QUANTITE

quand, via un formulaire ou n'importe quoi, tu récupères un ou plusieurs produits, de ttes façons, tu le fais par l'id, pas par le nom (le nom servira éventuellement à l'affichage).

Quand tu dois enlever 10 à la quantité du produit dont l'id est 5, une requête suffit.
UPDATE
PRODUITS AS PROD
SET
PROD.PROD_QUANTITE = PROD.PROD_QUANTITE + $quantite
WHERE PROD.PROD_ID $id // $id 5

Sur 2 tables, une table produits, une table quantité, c'est pas plus difficile :


table PRODUITS : PROD_ID (clef), PROD_NOM
table QUANTITE : PROD_ID (Fk), QUANTITE

UPDATE
QUANTITE AS QUANT
SET
QUANT.QUANTITE = QUANT.QUANTITE + $quantite
WHERE
QUANT.PROD_ID = $id

Et je ne pige tjrs pas ton problème : si $piece[1] contient 'pince', comment ensuite $pince peut contenir la quantité de pinces...?
Et je ne pige pas non plus pourquoi tu veux utiliser une variable $pince de toutes manières...je ne vois pas en quoi cela va t'aider.
$pince, pour php ou une quelconque bdd, ne sera jamais reconnue comme la chaîne 'pince' contenue dans tes tables.
Et on utilise des ID pour référencer quelquechose dans une bdd. C'est plus rapide que d'utiliser des chaînes, et plus parlant, et puis bon, on travaille en général en bdd relationnelle...et y a pas grand chose de mieux qu'un ID pour créer des relations entre tables.

Moi ce qui m'inquiète, c'est que j'ai le sentiment que tu utilises une (2...?) bases très mal structurées, sans vraiment idée de comment on doit structurer un modèle de données.

Donne un exemple concret (un bout de code) sur ce que tu fais/veux faire, et donne aussi la structure des tables concernées (avec nom des bases si vraiment tu as plusieurs bases). On pourra mieux 'taider.