Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于数据库记录/调用的动态变量-帮助?_Php_Dynamic_Variables - Fatal编程技术网

Php 基于数据库记录/调用的动态变量-帮助?

Php 基于数据库记录/调用的动态变量-帮助?,php,dynamic,variables,Php,Dynamic,Variables,好的,我会尽量简短的 我正在尝试为我的用户创建一个真正可扩展的环境,从而允许他们.. 1.定义一个新选项(dshop\u options\u name) 2.定义选项值(dshop\u选项\u值) 数据库中的独立表 这是为了允许分配不同的值,也允许以任何组合进行分配。 好的,脚本分为两部分。表单页面和结果页面 form.php(使用POST) 首先,我需要根据分配给产品的选项动态创建下拉列表,然后运行dshop_options_values表以获取分配给该选项的任何值 /////////////

好的,我会尽量简短的

我正在尝试为我的用户创建一个真正可扩展的环境,从而允许他们..
1.定义一个新选项(dshop\u options\u name)
2.定义选项值(dshop\u选项\u值)
数据库中的独立表

这是为了允许分配不同的值,也允许以任何组合进行分配。
好的,脚本分为两部分。表单页面和结果页面

form.php(使用POST)

首先,我需要根据分配给产品的选项动态创建下拉列表,然后运行dshop_options_values表以获取分配给该选项的任何值

//////////////////////////////////////////////////////////////////////////////////////////

$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) {
$prod_prop_id=$data9[0];
$prod_prop_title=$data9[1];

$prod_prop_attri=mysql_query("SELECT * FROM `dshop_options_values` WHERE `prod_id`='".$selected_product."' AND `attri_name`='".$prod_prop_title."' ORDER BY `attri_value` ASC ");
$prod_prop_attri_array= array();
while($data10=mysql_fetch_array($prod_prop_attri)) {
$prod_prop_attri_array[]=$data10;
}   
  if(!$prod_prop_attri_array){}
  else{
  echo"<div class='left'>";
  echo"$prod_prop_title\n";?>
    <select name='<? echo $prod_prop_title?>'>
    <option value="select">Select</option>
    <?php   
  foreach($prod_prop_attri_array as $rowNum => $data10){
  $itemname=$data10[2];
  $itemvalue=$data10[3];
  $itemprice=$data10[4];
  if($itemprice<="0"){
  echo"<option value='".$itemvalue."'>".$itemvalue."</option>\n";
  }
  else{
  echo"<option value='".$itemvalue."'>".$itemvalue."&nbsp;-&nbsp;".$currency_type.$itemprice."</option>\n";
  }      
  }
  echo"</select></br></br></div>";
  }
$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];
$varnval=$_REQUEST[$option_name];
echo"$varnval"; // did we get a result?
$results = array();

  if(!$varnval | $varnval=="select"){}
  else{
  $results[] = $option_name."-".$varnval;
  $optpricesum_query=mysql_query("SELECT * FROM `dshop_options_values` WHERE `attri_name`='".$option_name."' AND `attri_value`='".$varnval."'");
  $optpricesum_result=mysql_fetch_array($optpricesum_query);
  $optpricesum=$optpricesum_result[4];
  }
  if(!$varnval | $varnval=="select"){}
  else{
  for ($i=0;$i<=0;$i++){$options.=$results[$i]." | ";}
  }
}
$prod\u prop\u name=mysql\u查询(“从'dshop\u options\u name`中选择*”;
$prod_prop_name_array=array();
而($data9=mysql\u fetch\u数组($prod\u prop\u name)){
$prod_prop_name_数组[]=$data9;
}
foreach($rowNum=>$data9的prod\u prop\u name\u数组){
$prod_prop_id=$data9[0];
$prod_prop_title=$data9[1];
$prod_prop_attri=mysql_查询(“从'dshop_选项_值'中选择*,其中'prod_id`='”。$selected_product.”和'attri_name`='”。$prod_prop_title.”按'attri_值'ASC'排序);
$prod_prop_attri_array=array();
而($data10=mysql\u fetch\u数组($prod\u prop\u attri)){
$prod_prop_attri_array[]=$data10;
}   
if(!$prod\u prop\u attri\u数组){
否则{
回声“;
回显“$prod\U prop\U title\n”?>

您应该首先检查“register\u globals”是否处于启用状态,以便让$\u REQUEST工作;我不希望使用该超全局变量,而是使用$\u GET或$\u POST(取决于表单设置)

对于您的选项,最好将它们存储为数组:

<select name="myoption[]">
<option name="1" value="1">One</option>
<option name="2" value="2">Two</option>
</select>
希望有帮助

print_r($myoption);