php - 需要echo来评估变量两次。从mySQL数据库中获取变量名,然后解析该变量

时间:2013-11-11 22:25:28

标签: php mysql

我有一页:

  $cats=some_dynamic_data_value;

$sql="SELECT `number` FROM `table`";
$result=mysql_query($sql);
$value=mysql_fetch_array($result);

        echo $value;

在mySQL数据库中,我将$ cat存储在一个单元格中,但是number列中的其他单元格中也存在常规的旧数字,如1,2,3。

当echo评估时,它只显示$ cats,但我需要它来显示当时定义的$ cats。

为什么echo不能再次评估$ cats?我怎样才能让它评估变量两次,但仍然评估常规数字? (为什么双变量不起作用)

变得更加清晰我希望?

我发现了它。使用了EVAL FUNCTION。

3 个答案:

答案 0 :(得分:4)

您需要使用eval

eval('echo "<td>" . ' . $value . ' . "</td>\n";');

我建议你找到一种更好的方法,因为eval将执行任意PHP语句,而不仅仅是扩展变量。

答案 1 :(得分:0)

我不完全确定我理解你的目标,但你可以这样做:

$cats=some_dynamic_data_value;

foreach ($row as $field=>$value) 
{
    echo "<td>" $cats ." - " . $value . "</td>\n";
};

这将在你的foreach语句中回显$cats中的值 - 如果你的意思是“当时定义的那样”。

另一方面,如果你有一堆$cats可以有的其他变量,你可以看一下变量变量:

$dog="Woof";
$cow="Mooo";
$fluffeh="Fluffs";

现在,如果要在包含变量名称的$cats变量中显示这些值,您可以这样做:

$cats="dog";

foreach ($row as $field=>$value) 
{
    echo "<td>" $$cats ." - " . $value . "</td>\n";
    // $value assumed to be 1234 for output.
};

输出:

<td>Woof - 1234

答案 2 :(得分:0)

这可能会有用。尝试将数据库中的值从“$ cat”更改为“cat”。然后你可以在符号链接中使用它:

$cats = "Hello from cats"; // somewhere a variable
$value = "cats"; // this value from database
echo $$value;