好吧,在那之前,我是PHP的初学者。 请原谅我这个愚蠢的问题。
说id_user' 1'有2个项目,因此它将为每个项目创建2个输入表单。
这些是输入表格:
<input value="0" type="text" name="store_<?php echo $id= "I got this value from id.item in database, in this case '5'" ?>" required="required">
<input value="0" type="text" name="take_<?php echo $id= "I got this value from id.item in database, in this case '5'" ?>" required="required">
<input value="0" type="text" name="store_<?php echo $id= "I got this value from id.item in database, in this case '6'" ?>" required="required">
<input value="0" type="text" name="take_<?php echo $id= "I got this value from id.item in database, in this case '6'" ?>" required="required">
注意:从表格&#39; item&#39;中检索值take_ {id}和store_ {id} coloumn&#39; id_item&#39;在数据库中。
用户输入以下值:
*value 'store' for id_item 5 is 3
*value 'take' for id_item 5 is 2
*value 'store' for id_item 6 is 1
*value 'take' for id_item 6 is 1
如何节省价值&#39;存储&#39;并且&#39;采取&#39;从用户输入到数据库及其关联的ID? 考虑1个用户可以有多个项目。
这是表格项目。
->id_user (referencing id_user from user's table)
->id_item # this primary key
->Take
->Store
所以最后的结果将是这样的:
id_user : 1
id_item : 5
Store : 3
Take : 2
就像这样
id_user : 1
id_item : 6
Store : 1
Take : 1
我整天都用Google搜索了,我认为正则表达式采用模式&#39; store_ &#39;并且&#39;采取_ &#39;该怎么办?还是有另一种方法来实现这一点? 谢谢你:)
答案 0 :(得分:0)
Set You input like this
<input value="0" type="text" name="store[]" required="required">
<input value="0" type="text" name="take[]" required="required">
<input value="0" type="text" name="store[]" required="required">
<input value="0" type="text" name="take[]" required="required">
and get this value on backside like this
$postdata=$_POST;
$count= $postdata['store'];
for($i=0;$i<$count;$i++){
echo $postdata['store'][$i];
echo $postdata['take'][$i];
}
die();
see your store and take value
答案 1 :(得分:0)
假设您正在从PHP循环生成HTML <input ... />
字段,例如:
foreach($dbResult as $item) {
echo "<input type=\"text\" name=\"store[{$item->getId()}]\" />\n"
. "<input type=\"text\" name=\"take[{$item->getId()}]\" />\n";
}
哪个应该给你这样的$_POST
数组(在你的例子中使用用户输入值):
Array
(
[store] => Array
(
[5] => 3
[6] => 1
)
[take] => Array
(
[5] => 2
[6] => 1
)
)
store
和take
数组键是项目ID 。
然后,您可以使用任一数组中的键生成循环并将数据插入数据库(以PDO
为例 - 错误需要在实时环境中处理):
if(!empty($_POST['store'])) {
// we can use the keys from just the `store` array
// as they'll be the same as those in the `take` array
foreach(array_keys($_POST['store']) as $itemId) {
$userId = $_SESSION['user_id']; // from the session for example...
$storeValue = $_POST['store'][$itemId];
$takeValue = $_POST['take'][$itemId];
$qry = "INSERT INTO item(item.id_user, item.id_item, item.store, item.take) "
. "VALUES(:user_id, :item_id, :store_value, :take_value)";
$stmt = $db->prepare($qry);
$stmt->bindParam(':user_id', $userId, PDO::PARAM_INT);
$stmt->bindParam(':item_id', $itemId, PDO::PARAM_INT);
$stmt->bindParam(':store_value', $storeValue, PDO::PARAM_INT);
$stmt->bindParam(':take_value', $takeValue, PDO::PARAM_INT);
$stmt->execute();
}
}
答案 2 :(得分:0)
经过几个小时的搜索终于找到答案了 我决定改变一下输入表格。
<input type="text" name="<?php this is id_item?>[0]"> // this array [0] will be assign for 'store' section
<input type="text" name="<?php this is id_item?>[1]"> // this array [1] will be assign for 'take' section
我还添加了1 输入类型=隐藏来检索id_item
<input type="hidden" name="<?php this is id_item ?>[2]" value="<?php this is id_item ?>"> //this array [2] will be assign for send 'id_item' value.
并循环接收数据的内容
for($i=0;$i<How much row i have;$i++){
$store=intval($my_array[$i][0]);
$take=intval($my_array[$i][1]);
$amount=$store-$take;
$id_item=$my_array[$i][2];
/////////////////////////////////////
And do insert command to database right here
我知道这不是很好,但它会完成这项工作。
谢谢您回答并评论我的问题:)