PHP帮助在变量内部声明变量


PHP help on declaring variables inside of a variable

好的,我有一个页面,它调用msyql数据库中的信息列表。比如说,我有一个名为table的表,其中包含列id、名称、电话号码和单选按钮组(home、cell、work)等,和"status"(不确定该怎么称呼,但这是单选按钮的值)单选按钮。我想做的是让它为每一行,如果我为单选按钮分配一个值,它将编辑状态部分。比如说,在第1行,我单击主页,第2行,单元格,第3行主页…等等,然后我点击提交按钮,它将更新数据库。

这是我对表格中单选按钮部分的代码。这是在php标签下

我最终所做的基本上是调用每组单选按钮,status_type1、status_type2、status_type3……基本上是单选名称="status_type"。$info['id']。"

我想做一个if语句,看看是否有通过点击按钮分配的值,然后提交它们以供输入。这就是我到目前为止所拥有的。

//Radio Button Template
  <fieldset>
<input type='radio' id='status_type_home' name='status_type".$info['id']."' value='home'  />
    <label for='status_type_home'>home</label>
<input type='radio' id='status_type_work' name='status_type".$info['id']."' value='work'  />
    <label for='status_type_work'>work</label>
<input type='radio' id='status_type_cell' name='status_type".$info['id']."' value='cell'  />
    <label for='status_type_cell'>cell</label>
</fieldset>
 </td>";

//If statement to submit radio buttons
    if ($_POST['status_type "$info['id']"']) 
{
$edit_status_sql="UPDATE status SET type = 'status_type".$info['id'] . "' WHERE id = '" . $id . "'";
$edit_status_res=mysqli_query($connection, $edit_status_sql) or die(mysqli_error($connection));
}

我遇到的问题基本上是,我已经将单选按钮的名称声明为status_type[基于id的变量]。不幸的是,这不起作用。我想知道是否有人能帮我弄清楚应该如何格式化它,或者是否可以在变量中声明一个变量。谢谢

您的PHP代码语法不正确。假设$info具有正确的值,它应该读取

if ($_POST["status_type$info[id]"]) 

注意:

  • 已删除空间以匹配HTML
  • 双引号已从字符串内部删除,现在改为对其进行分隔
  • 删除了$info的数组索引中的单引号

您也可以使用等效的$_POST["status_type".$info['id']]

然而,该代码还有许多其他问题:

  • 您似乎对页面中的多个单选按钮使用了相同的HTML ID(ID对每行重复使用)。这是不正确的;id应该是唯一的
  • 如果未定义变量,则if应阻止E_NOTICE;即它应该读取CCD_ 6
  • 该代码易受SQL注入的攻击。这应该立即修复

应该是

if ($_POST["status_type".$info['id'].""]){
    .....
}

你有:

  if ($_POST['status_type "$info['id']"']) {
    .....
  }

我也会这样做smth:$statusType = "status_type".$info['id'];,并像$_POST["$statusType"] 一样使用它

$edit_status_sql="UPDATE status SET type = '."$statusType".' WHERE id = '".$id."'";