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

时间:2012-08-29 07:25:34

标签: php

好的,所以我有一个页面调用msyql数据库中的信息列表。比方说,我有一个名为TABLE的表,其中包含列ID,名称,电话号码和单选按钮组(家庭,单元格,工作)等。我创建了一个脚本,在表格中打印出姓名,电话号码和“状态(不知道什么最好称之为,但它是单选按钮的值)单选按钮。我想做的是使它对每一行,如果我为单选按钮赋值,它将编辑状态部分。所以说,在第1行,我点击主页,第2行,第3行和第3行...等等,然后点击提交按钮,它将更新数据库。

所以,这是我表格中单选按钮部分的代码。这是一个php标签

我最终做的基本上是调用每组单选按钮,status_type1,status_type2,status_type3 ...基本上是radio name ='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的变量]。不幸的是,这不起作用。我想知道是否有人可以帮我弄清楚我应该如何格式化它,或者甚至可以在变量中声明变量。谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

注意:

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

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

但是,该代码还存在许多其他问题:

  • 您的页面中的多个单选按钮似乎使用相同的HTML ID(每行重复使用ID)。那是不对的; ids应该是唯一的。
  • if如果未定义变量,则应阻止E_NOTICE;即它应该是if(isset($_POST[...]))
  • 代码容易受到SQL injection的攻击。这应该是现在

答案 1 :(得分:0)

应该是

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

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

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

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