2

Is it possible to create a dynamic variable in PHP based on the value that comes from mysql database?

I mean,

say I have a field in mysql State

When I read the value in php using row['State'] from the database and if I get a value like Alabama, I want to have a variable created like $Alabama_count and I will initialize to 0 or 1.

Thanks.

7 Answers 7

3

There does exist an easier solution. Instead of creating something called $Alabama_count, you could create this very easily: $count['Alabama'], i.e. $count[$row['State']].

Sign up to request clarification or add additional context in comments.

2 Comments

I've never thought of a good place to use variable variables where an associative array wouldn't be better. Though you do need to say: $count[$row['State']] (missing $ on row)
@Johnr: yep, I agree. Thanks for the note. I have fixed it now.
1
$varname = $row['State'] . '_count';
$$varname = 0; // or 1

Comments

1

You can do ${$row['State']} if $row['State'] is Alabama it's the same as doing $Alabama.

Similarly you can do the same to _count:

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

Comments

0

Sounds like you want to use variable variables, something like this?

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

Comments

0

Not really sure if this is what you want but take a look at Variable variables on the php manual

Comments

0

You could create a variable named ${$row['State'].'_count'} and set its value. I'm not sure how advisable this would be, however. You don't know what variables you will be left with.

Comments

0

You can use for this variables of variables using $ symbol twice: for example:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.