PHP 变量混淆

PHP Variable Variables Confusion

提问人:DanAdams 提问时间:4/27/2014 最后编辑:Marcel GwerderDanAdams 更新时间:4/27/2014 访问量:80

问:

我正在使用循环并在数据库中的页面上显示信息。如何为页面上回显的某些单选按钮元素指定变量名称,然后在提交表单时将这些单选按钮的变量名称用作变量?whilemysql_fetch_array$_POST

代码如下:

session_start();
include 'acdb.php';

$prodid = $_SESSION['prodid'];

$e = "SELECT * FROM Images WHERE product_id=$prodid AND active='yes'";
$e_result = mysql_query($e,$connection) or die ('Could not get the list of all Images for this Product and Service');
$amount = mysql_num_rows($e_result);

while ($e_data = mysql_fetch_array($e_result)) {
    echo "<img src='images/thumbnails/" .$e_data[1]. "' border='0'>";
    echo "<label class='sel-photo'>DISPLAY PICTURE:</label> <input type='radio' name='{radio" .$e_data[0]. "}' value='1'>";
    echo "<br>";
    echo "<label class='sel-photo'>DO NOT DISPLAY PICTURE:</label> <input type='radio' name='{radio" .$e_data[0]. "}' value='0' checked>";
}                   
php mysql 动态 变量

评论

2赞 Marcel Gwerder 4/27/2014
我很欣赏你写这篇文章的努力,但我认为如果你让它更紧凑并尝试专注于实际问题,你会得到更多的回应。它只是很多文字。
0赞 Wh1T3h4Ck5 4/27/2014
@MarcelGwerder说的确实是对的。周围的人不想费心读故事。只需输入一些相关的代码部分和简要信息即可。尽可能简短地描述您的问题。顺便说一句,提供一些关于数据库结构的信息作为示例并不是一个坏主意 + 请不要将函数与数据库一起使用,使用 或 .mysql_*PDOmysqli_*
0赞 Wh1T3h4Ck5 4/27/2014
您可以通过 为该输入设置名称。返回的是您要查找的名称。所以你的工作只是在提交时检查数组。...name='" .$query_result[0]. "'...$query_result[0]$_POST
0赞 DanAdams 4/27/2014
感谢大家帮助解释较短问题的好处。我继续编辑了我的问题,所以希望它会更简洁,更容易理解我想要完成的事情。另外,感谢@Wh1T3h4Ck5对mysqli的解释。我将在我的代码中进行更改。
0赞 DanAdams 4/27/2014
如果您注意到在新示例中,我正在尝试在单选按钮的名称中使用串联,以便在提交表单时,每组回显的单选按钮都具有检索表单的唯一方式。这就是我遇到问题的地方。

答:

1赞 RiggsFolly 4/27/2014 #1

通过这样做,您将获得您所追求的结果

 echo "<label class='sel-photo'>DISPLAY PICTURE:</label> <input type='radio' name='radio" .$e_data[0]. "' value='1'>";

因此,假设 $e_data[0] = 'xxx',您将获得 html

name='radioxxx'

它最好,尤其是在使用表格时。这是因为在使用 时,列将按照它们在表上创建的顺序返回。如果您/其他人决定在以后重新组织表列,则它们将以不同的顺序返回,并且现在可能指向不同的列。SELECT *$e_data['fieldname']*$e_data[0]

评论

0赞 DanAdams 4/28/2014
感谢您的回复@RiggsFolly。如果我使用您提到的命名系统,当我提交表单时,我如何调用 $_POST 变量,因为我不知道 $e_data[0] 的值是 'xxx' 还是 'yyy'?例如。。。如果我使用 name=“radio” 单选按钮的名称,那么我的 post 变量将是 $_POST['radio']。那么,带有串联单选按钮名称的后变量是什么呢?
0赞 DanAdams 4/28/2014
感谢@RiggsFolly解释 SELECT 选项。这很有意义,我想我将开始在我的代码中实现它。非常感谢。