将数据存储在关联数组php中

时间:2011-11-25 10:29:40

标签: php database

我这里有这个代码:

<?php while($rowequipment = mysql_fetch_assoc($sqlequipment)) {
echo '<input type="checkbox" name="equipment[]" value="'.$rowequipment['equipmentid'].'"/>    <input type="text" name="count[]" id="count[]" size="3" value=""/>'
.$rowequipment['description']."<br />";
}?>

这会创建一个复选框列表,以选择用户想要的设备和文本框以放入所需的数字。

是否有可能以某种方式将数据存储在php中的关联数组中,以便我无法将其传输到数据库中?例如:

equipmentid    count
1              2
3              1

或者有不同的方法来做到这一点。

感谢。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

<form method="post">
<?php
$row[0]['equipmentid'] = 1;
$row[0]['description'] = "test1";
$row[1]['equipmentid'] = 2;
$row[1]['description'] = "test2";

foreach($row as $rowequipment)
{
    $e_id = $rowequipment['equipmentid'];
    echo '<input type="checkbox" name="equipment['.$e_id.'][id]" value="'.$e_id.'"/> ';
    echo '<input type="text" name="equipment['.$e_id.'][count]" id="count'.$e_id.'" size="3" value=""/> ';
    echo rowequipment['description']."<br />";
}
?>
<input type="submit" value="aa"/>
</form>

,结果将是:

array(1) {
  ["equipment"]=>
  array(2) {
    [1]=>
    array(2) {
      ["id"]=>
      string(1) "1"
      ["count"]=>
      string(1) "4"
    }
    [2]=>
    array(2) {
      ["id"]=>
      string(1) "2"
      ["count"]=>
      string(1) "6"
    }
  }
}

现在用你的while改变foreach,你会得到相同的结果。

答案 1 :(得分:0)

PHP将解析使用方括号的表单值,并且它也可以使用ID,因此假设您实际上不需要两个复选框,您可以:

echo '<input type="text" name="count['.$rowequipment['equipmentid'].']" ';
echo 'id="count['.$rowequipment['equipmentid'].']" size="3" value=""/>';
echo $rowequipment['description']."<br />";

请注意,HTML中方括号内的id周围没有引号。