我不知道是怎么回事,我选择了表中的价格,当我使用它的罚款。在 <form>
这个 $seller
以及 $_SESSION['username']
也很好,但是在 buy_item.php
当我试图计算 $newAmount = ($row["amount"] - $price);
试着看看它的价值 $price
成为 0$
.
页面.php
sql
$sql = "SELECT seller,price FROM stuff ";
在表格中(所有信息看起来都很好)
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>". $row["price"] . "</td>";
echo "<td>". $row["seller"] . "</td>";
echo " <td><form action='buy_item.php' method='post'>
<input type='hidden' id='seller' name='seller' value='".$row['seller']."'/>
<input type='hidden' id='price' name='price' value='".$row['price']."'/>
<input type='hidden' id='buyer' name='buyer' value='". $_SESSION['username'] ."'/>
<input type='submit' value='Buy'/>
</form></td>";
echo "</tr>";
购买物品.php
<?php
session_start();
$conn = mysqli_connect("hi", "hi", "hi", "hi");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$seller = mysqli_real_escape_string($link, $_REQUEST['seller']);
$price = mysqli_real_escape_string($link, $_REQUEST['price']);
$buyer = mysqli_real_escape_string($link, $_REQUEST['buyer']);
$sql = "SELECT username,amount FROM users WHERE username = '" .
$_SESSION['username'] . "'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
if ($row["amount"] >= $price) {
$newAmount = ($row["amount"] - $price);
echo ("$newAmount");
}
else
{
echo "Records added successfully.";
}
}
} else { echo "0 results"; }
$conn->close();
?>
这个 $newAmount
总是出现= $amount
原因 $price
始终变为=0
1条答案
按热度按时间mmvthczy1#
我要赌一把,说$price有一个隐藏的字符或类似的东西。
php练习类型转换。在内部,php是一种类型化语言,它根据需要转换实际类型。
$\u请求以字符串形式提供$price的值。
当您在减法中使用它时,php会将它从字符串转换为整数。在cast中出错了,它看起来不像一个数字,所以php将其设为零。你的结果就会出现。
按照@mr glass的建议,用var_dump()打印出来,这一点就很清楚了。