$ row ['{$ variable}']的问题

时间:2013-01-28 14:58:43

标签: php mysql arrays

我正在尝试创建一个每次进入下一页时保存的多页调查。如果他们然后离开并返回到开头,则所有信息都会在字段中自动填充。

首先,我选择所有以前保存的数据:

$survey = $_GET['survey'];
$query = "SELECT * FROM data WHERE id='{$survey}'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

然后我会使用循环来获取页面上的所有问题,如果它存在于$ row数组中,则会自动填充信息。

$query = "SELECT * FROM questions WHERE id in (1,2,3)";
$result = mysql_query($query);
    while ($items = mysql_fetch_array($result)){
        if($items['type'] == "text"){ 
        $value = $items['name']; ?>
        <p><?php echo $items['question']; ?> <input type="text" id="<?php echo $items['name']; ?>" name="<?php echo $items['name']; ?>" value="<?php echo $row['{$value}']; ?>" /></p>
        <?php }
    }

表格的一个例子:

问题

ID,类型,名称,问题

1,text,first_name,你的名字是什么?

2,text,last_name,你的姓氏是什么?

DATA

ID,名字,姓氏

1,约翰,伊

除了:

之外,一切似乎都在起作用
value="<?php echo $row['{$value}']; ?>"

提前致谢,

3 个答案:

答案 0 :(得分:3)

抛弃引号,它们使它成为字符串文字而不是变量。 (括号可能也没有必要):

value="<?php echo $row[$value]; ?>"

答案 1 :(得分:0)

这应该是,不需要'

value="<?php echo $row[$value]; ?>"

答案 2 :(得分:0)

你的问题是一个,你使用单引号,它不执行PHP变量或函数,但按原样获取文本。如果使用双引号,{$ var}将被视为变量。但是,在这种情况下,您根本不需要引号。

使用:

<?php echo $row[$value]; ?>