【问题标题】:PHP Variable Variables ConfusionPHP 变量变量混淆
【发布时间】:2014-06-13 01:00:09
【问题描述】:

我正在使用while 循环和mysql_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>";
}                   

【问题讨论】:

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

标签: php mysql variables dynamic variable-variables


【解决方案1】:

你会得到你想要的结果

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

所以假设 $e_data[0] = 'xxx' 你会得到 html of

name='radioxxx'

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

【讨论】:

  • 感谢@RiggsFolly 的回复。如果我使用您提到的命名系统,当我提交表单时,我如何调用 $_POST 变量,因为我不知道 $e_data[0] 的值 = 'xxx' 还是 'yyy'?例如...如果我使用 name="radio" 单选按钮的名称,那么我的 post 变量将是 $_POST['radio']。那么带有串联单选按钮名称的 post 变量会是什么?
  • 感谢 @RiggsFolly 解释 SELECT 选项。这很有意义,我想我会开始在我的代码中实现它。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-14
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-30
  • 2021-09-08
相关资源
最近更新 更多