我不知道发生了什么,我选择了表中的价格,当我使用它时,它很好。在<form>
$seller
和$_SESSION['username']
也可以,buy_item.php
当我尝试计算$newAmount = ($row["amount"] - $price);
并尝试查看其值{ {1}}成为$price
。
page.php文件
sql
0$
表中的(所有信息都显示正常)
$sql = "SELECT seller,price FROM stuff ";
BUY_ITEM.PHP
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
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
始终变为= 0
答案 0 :(得分:0)
我会采取一个平底船,并说价格中有隐藏的字符或类似内容。
PHP练习类型杂耍。内部PHP是一种类型化语言,可根据需要转换实际类型。
$ _ REQUEST以字符串形式提供$ price的值。
当你在减法中使用它时,PHP会将它从字符串转换为整数。在演员阵容中出现问题,它看起来不像是一个数字,所以PHP使其为零。然后你的结果就会出现。
使用var_dump()将其打印为@ mr-glass建议将使其清晰。