【问题标题】:Declaring PHP variables with numbers (based on loop and based on num of records returned by a query)用数字声明 PHP 变量(基于循环和查询返回的记录数)
【发布时间】:2016-04-04 07:49:38
【问题描述】:

我在第一页上有这个: 返回结果

它显示了 2 个具有不同 ID 和不同成员数量的组。 IT09 有 3 个,IT10 有 4 个。 当点击“评估”标签时,页面会从这里继续。

这些文本框的声明方式如下:

<table>
$i=1;
while ($data = mysql_fetch_array($querys))
{
echo '<tr>
<td width="120">'.$data['thenames'].'</td>
<td width="50">
<input type="text" name="newSG'.$i.'" id="newSG'.$i.'" class="evaluation" value="'.$data[$toshow].'" onkeypress="return isNumber(event)" />
</td>
<td>
<input type="hidden" name="stud'.$i.'" id="stud'.$i.'" value="'.$data['memberID'].'" />
</td>
</tr>';
$i++;
}
</table>

如您所见,它创建了一个文本框和一个隐藏输入,其中包含名称和 ID,最后带有一个数字。这也是我希望在我的 php 部分发生的事情。

我有这个代码

$ii = 1;
while ($data = mysql_fetch_array($qry))
{
$stud(here) = $_POST['stud'(and here)]; <<<<

$ii++
}

我想用这个循环声明变量。如您所见(此处和此处),我希望它具有数字 1、2、3 或取决于我的查询返回的记录数。这里的问题是我想声明类似 $stud1、$stud2 等的东西。我不知道如何在变量 $stud 之后添加循环的值。有人可以帮忙吗?

【问题讨论】:

  • 是的,是的,那是我的问题。你能给我一个变量与数字连接的语法示例吗?
  • 不要使用可变变量。只需使用一个数组。
  • @Rizier123 不要帮他做错事。
  • @Barmar 你是对的。如果这是唯一的错误(mysql_*)。
  • @Rizier123 这就是我之前所做的,它错了。

标签: php mysql loops variables


【解决方案1】:

改为创建一个关联数组。

$studs = array(); while(...){ $studs['stud'.index] = $row; }

访问它:

echo $studs['stud1'][field];

如果你真的想要它作为一个变量,那么:

eval('return $stud'.$ii.'=json_decode(\''.json_encode($row).'\');');

那么你可以:

echo $stud1-&gt;field;

编辑:

您似乎在帖子中分配了您的螺柱变量。那么你可以:

eval('return $stud'.$ii.'=$_POST[\''.$ii.'\']');

访问它:

echo $stud1;

【讨论】:

  • 我觉得有点难以理解,我应该在数组(这里)里面写什么吗?和单词索引,应该只是那个单词还是我需要的任何索引号?最后是 $row, (值)如果它来自 post 方法怎么办。 $_POST['stud'] 我应该如何在其中包含数字?
  • 不要在 array() 中放入任何东西,它只是在声明一个数组。在您的情况下,索引应该是$ii$row 应该是 mysql_fetch_array 中的 $data
【解决方案2】:

不要使用单独的变量,使用数组。

$studs = array();
$i = 1;
while ($data = mysql_fetch_array($querys)) {
    $studs[$i] = $_POST['studs' . $i];
}

我不确定您为什么要在数据库结果的循环中从 POST 数据中填充一个变量,但这并不真正相关。

我还建议您将$i 从表单输入中取出。给它们命名,如studs[]newSG[],PHP 会自动将它们放入$_POST 的数组中。然后你可以这样做:

$studs = $_POST['studs'];
$newSG = $_POST['newSG'];

【讨论】:

  • 那里。完成! :) 谢谢@barmar。但是您建议的部分,对不起,但我有我的理由将 $i 包含在他们的名称值中。呵呵.. 还是非常感谢你:) 新年快乐
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 2021-02-02
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
相关资源
最近更新 更多