Reputation: 197
I'm trying to use some mysql data in creating part of a variable name to refer to another variable already declared elsewhere. Basically how can I get the $damage_name be part of the if statement boolean check?
$conditions = array(
'bent_num' => 0,
'spine_torn' => 0,
'pages_torn' => 0,
'water_damage' => 0,
'pages_highlighted' => 0,
'pages_noted' => 0,
'taped' => 0,
'stained' => 0,
'mold' => 0,
'scratched' => 0
);
while ($row = mysql_fetch_assoc($res))
{
$damage_name = $conditions[$row['type']];
if (isset($conditions[$row['type']]) && $_SESSION[SELL_is_ . $damage_name . ]; == 'y')
{
$condition_score = $condition_score - $row['value'];
}
}
Upvotes: 2
Views: 104
Reputation: 1045
$_SESSION[SELL_is_ . $damage_name . ];
should be
$_SESSION["SELL_is_" . $damage_name];
Upvotes: 1
Reputation: 4526
try:
if (isset($conditions[$row['type']]) && $_SESSION["SELL_is_$damage_name"] == 'y')
Upvotes: 0
Reputation: 57729
I think you mean:
$_SESSION[constant("SELL_is_" . $damage_name)]
I'm assuming SELL_is_ is a define
d constant (because of the capitalization). To get the value of a define, either use the full name, or use constant
.
Upvotes: 1
Reputation: 342645
Broken syntax and concatenation. Try:
$_SESSION['SELL_is_' . $damage_name];
$damage_name
Upvotes: 3