简短说明我想做什么..当我点击我的按钮" calc1"我输入的数字(数量1)应该减少输入数字I输入(amount1)类似"结果= quantity1 - amount1"。在输入" quantity1"已经是一个值,因为我将它从我的数据库加载到输入中,但计算不起作用。我希望你能理解我一点......我现在更好地展示我的代码..
计算代码:
<?php
include_once('connect.php');
if($_POST['calc1']){
$_POST['quantity1'] = $_POST['quantity1'] - $_POST['amount1'];
$sql = "UPDATE
tbl_auction
SET
quantity1 = $_POST['quantity1']
WHERE
id = :user_id";
$query = $conn->prepare($sql);
$query ->execute(array('quantity1' => $_POST['quantity1'] ));
} else{
echo 'ups, error!';
}
?>
HTML代码:
<div id="move_amount">
<input type="text" class="amount" name="amount1">
</div>
<div id="move_quantity">
<input type="text" class="tend_quantity" name="quantity1" value=" <?=$value_quantity1 ?>" >
</div>
<div id="move_btn">
<input class="btn_sel" name="calc1" type="submit" name="submitted" value="Bidding">
</div>
以下是我要更新的数据库中的部分
id AUTO_INCREMENT
quantity1 int(11)
我感谢你的每一次帮助!
编辑:我的user_id声明:
if ($result[0]["password"] !== md5($_POST['password'].'D6tp'.$_POST['email'])) {
header('Location: /PHP/index.php?page=login');
} else {
$_SESSION['loged_in'] = true;
$_SESSION['user_id'] = $result[0]["id"];
header('Location: /PHP');
};
编辑:问题解决了!对于那些想知道问题是什么的人:所以首先@arkascha有一些很好的修正,你可以看到她的帖子...而且这个问题是因为在我的输入中,值是一个字符串写的,这就是计算的原因也没用。感谢@arkascha!答案 0 :(得分:3)
这里有一些小问题:
$_POST['quantity1']
,因为您希望将其作为参数提交。所以改为放置占位符::quantity1
。 id
列的占位符了,太棒了!但是你忘了在执行execute()!$_POST['quantity1']
,尽管从技术角度来看肯定是可能的。超全局$_POST
应被视为只读数据源,而是使用局部变量。这使代码更容易遵循。 所以试试这个:
<?php
include_once('connect.php');
if($_POST['calc1']) {
$quantity1 = $_POST['quantity1'] - $_POST['amount1'];
$sql = 'UPDATE tbl_auction SET quantity1 = :quantity1 WHERE id = :user_id';
$query = $conn->prepare($sql);
$query ->execute(array(
'user_id' => $some_user_id, // this has to be some user id
'quantity1' => $quantity1
));
} else{
echo 'ups, error!';
}
你显然仍需要在这里做一点调整,但我希望应该解决一般问题。