从数据库记录中填充$ _REQUEST变量值 - 如何?

时间:2009-11-23 01:05:30

标签: php dynamic variables

我正在尝试从表单选择中发布值。选择名称是动态的,这意味着名称值由数据库记录定义。

在表单处理脚本中,我想通过$_REQUEST回调该值。

我事先无法知道$_request的值是什么(例如$var=$_REQUEST['foo'];),但我知道该值是源自数据库表的值。 知道了这一点,我创建了一个数据库调用,然后使用foreach循环遍历可能的值。

我想为每次传递创建一个$_request

例如..

$prod_prop_name=mysql_query("SELECT * FROM `dshop_options_name`");
$prod_prop_name_array= array();
while($data9=mysql_fetch_array($prod_prop_name)) {
$prod_prop_name_array[]=$data9;
}
foreach($prod_prop_name_array as $rowNum => $data9){
$option_id=$data9[0];
$option_name=$data9[1];
echo"$option_name";
if($option_name==""){}
else{
$varnval=$_REQUEST[$option_name];  // this is my try at getting the var value
echo "$varnval"; // this is the output test
}
   }

我遇到的问题是在本地服务器上,我得到一个值,但在网络服务器上我得不到。您可以看到我正在使用echo来查看会发生什么。 $varnval

有人可以为此问题提出解决方法吗?

非常感谢

KF

2 个答案:

答案 0 :(得分:0)

服务器上的PHP版本是否可能早于4.1?那是引入$ _REQUEST变量的时候。

您可以执行<?php echo(phpinfo()); ?>检查服务器上的PHP版本。

答案 1 :(得分:0)

请尝试以下方法测试案例:

$result = mysql_query("SELECT * FROM `dshop_options_name`") or die("Something went wrong trying to retrieve the names of the options: ".mysql_error());

$options = array();

while ($each = mysql_fetch_array($result))
    $options[] = $each;

mysql_free_result($result);

echo "Name of options: ".join(", ",$options)."<br><br>\n";

foreach ($options as $option)
{
    if (isset($_REQUEST[$option]))
        echo "\$_REQUEST[\$option]: ".$_REQUEST[$option]."<br>\n";
    elseif (isset($_GET[$option]))
        echo "\$_GET[\$option]: ".$_GET[$option]."<br>\n";
    elseif (isset($_POST[$option]))
        echo "\$_POST[\$option]: ".$_POST[$option]."<br>\n";
}

echo "<pre>_REQUEST vars:<br>\n".print_r($_REQUEST,true)."</pre>\n";
echo "<pre>_GET vars:<br>\n".print_r($_GET,true)."</pre>\n";
echo "<pre>_POST vars:<br>\n".print_r($_POST,true)."</pre>\n";