我目前正在尝试使用Android中的PHP和MySQL更新数据库。
这是我的PHP代码:
<?php
$slot_name = $_GET['slot_name'];
// include db connect class
require_once __DIR__ . '/db_connect.php';
// connecting to db
$db = new DB_CONNECT();
// MySQL select row with matched slotname
$checkSQL = mysqli_query($db->connect(), "SELECT AVAILABLE_SLOT FROM parking_slot WHERE SLOT_NAME = '$slot_name'");
$checkResult = mysqli_fetch_object($checkSQL);
$valueSlot = $result->AVAILABLE_SLOT;
// MySQL update row with matched slotname
$updateRow = mysqli_query($db->connect(), "UPDATE parking_slot SET available_slot = available_slot - 1 WHERE slot_name = '$slot_name'");
$checkFull = "Parking Slot is full! You are not parked!";
if($valueSlot < 1)
{
// Showing that the parking slot is full
echo $checkFull;
}
else
{
echo "a";
$updateRow;
}
?>
当我的数据库中$valueSlot
的值AVAILABLE_SLOT
小于1时,else
内的函数仍然会被执行。因此if
和else
中的每个函数都可以在valueSlot
小于1时起作用,这意味着我的AVAILABLE_SLOT
得到了负值,这是不合逻辑的.-
我在这里做错了什么?
答案 0 :(得分:1)
唯一需要解决的问题是: -
您正在未定义的变量<paper-drawer-panel force-narrow>
上调用AVAILABLE_SLOT;
,该变量未在任何地方定义。
所以: -
$result
应该是
$valueSlot = $result->AVAILABLE_SLOT;
另外正如castis所提到的,你的$valueSlot = $checkResult->AVAILABLE_SLOT;
在被分配时会被触发,所以基本上你每次调用那个php文件时都会调用它。