插入的值保持为0

cbjzeqam  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(302)

我不知道是怎么回事,我选择了表中的价格,当我使用它的罚款。在 <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

mmvthczy

mmvthczy1#

我要赌一把,说$price有一个隐藏的字符或类似的东西。
php练习类型转换。在内部,php是一种类型化语言,它根据需要转换实际类型。
$\u请求以字符串形式提供$price的值。
当您在减法中使用它时,php会将它从字符串转换为整数。在cast中出错了,它看起来不像一个数字,所以php将其设为零。你的结果就会出现。
按照@mr glass的建议,用var_dump()打印出来,这一点就很清楚了。

相关问题