php - 插入的值保持为 0
问题描述
不知道怎么回事,我选了表里的价格,用的时候还好。在中<form>
也$seller
很好$_SESSION['username']
,但是buy_item.php
当我尝试计算$newAmount = ($row["amount"] - $price);
并尝试查看该值时,它似乎$price
变成了0$
。
PAGE.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>";
BUY_ITEM.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
解决方案
我要赌一把,说 $price 里面有一个隐藏的字符或类似的东西。
PHP 练习类型杂耍。PHP 在内部是一种类型化语言,它根据需要转换真实类型。
$_REQUEST 以字符串形式提供 $price 的值。
当你在减法中使用它时,PHP 会将它从字符串转换为整数。演员阵容出了点问题,它看起来不像一个数字,所以 PHP 将其设为零。然后你的结果就会出现。
正如@mr-glass 所建议的那样,使用 var_dump() 将其打印出来将使这一点变得清晰。
推荐阅读
- python - pandas to_excel 如何只合并列?
- docker - Elastic with Kibana on docker 让 Kibana 服务器还没有准备好
- windows - 在 Windows 8 上使用 Get-AppxPackageManifest
- java - 我想知道扫描仪代码在 Java 中是如何工作的
- java - 在 setContentView(R.layout.activity_second) 中,activity_second 为红色
- excel - 如何比较 VBA 中的特定单元格值
- python - ImportError:无法从“kivy.app”导入名称“App”
- reactjs - React 如何在类(组件)之间共享方法
- go - 如何测试表单提交
- c# - 在 C# Monogame 中使用 .FromStream() 加载 png 空白图像