2010-01-21 4 views
2

Est-il possible de créer une variable dynamique en PHP en fonction de la valeur provenant de la base de données mysql?Création de variables variables à partir de valeurs MySQL

Je veux dire,

que j'ai un champ dans une base MySQL State

Quand je lis la valeur en php en utilisant row['State'] de la base de données et si je reçois une valeur comme Alabama, je veux avoir une variable créé comme $Alabama_count et je vais initialiser à 0 ou 1.

Merci.

Répondre

1
$varname = $row['State'] . '_count'; 
$$varname = 0; // or 1 
3

Il existe une solution plus simple. Au lieu de créer quelque chose appelé $ Alabama_count, vous pouvez créer ceci très facilement: $count['Alabama'], c'est-à-dire $count[$row['State']].

+1

Je n'ai jamais pensé à un bon endroit pour utiliser des variables variables où un tableau associatif ne serait pas meilleur. Bien que vous avez besoin de dire: $ count [$ row ['State']] ($ manquant sur la ligne) – Johrn

+0

@Johnr: oui, je suis d'accord. Merci pour la note. Je l'ai réparé maintenant. – Aishwar

0

Cela vous semble vouloir utiliser des variables variables, quelque chose comme ça?

$var_name = "{$row['State']}_count"; 
$$var_name = 1; 
1

Vous pouvez faire ${$row['State']} si $row['State'] est Alabama c'est la même chose que faire $Alabama.

De même, vous pouvez faire la même chose à _count:

${$row['State'] . '_count'} = 0; // $Alabama_count = 0; 
${$row['State'] . '_count'}++; // $Alabama_count++; // $Alabama_count = 1; 
0

Vous pouvez utiliser pour cela des variables de variables en utilisant le symbole $ deux fois: par exemple:

$variable = 'Some_text'; 
$$name = 123; 
echo $Some_text; 
//this will output 123 
+0

merci pour toutes vos réponses. – JPro

0

Vous pouvez créer une variable nommée $ {$ row ['State'] .'_ count '} et définir sa valeur. Cependant, je ne suis pas sûr de savoir à quel point cela serait souhaitable. Vous ne savez pas quelles variables vous resterez.

Questions connexes