php选择获取变量,然后在其上应用if

时间:2013-01-10 01:22:52

标签: php mysql

我正在制作汽车租赁系统。当用户租车时,系统应首先检查可用车辆的数量是否大于0,如果是,则进行调整“AVAILABLE = AVAILABLE + 1”(在跟踪车辆的MySQL表中),意思是,将汽车租给用户。此外,我正在尝试记录哪辆车去了哪个用户。所以我有另一个名为rentalrecords的数据库表,它接收登录用户的用户名值和租用汽车的ID。现在,问题是,我的'IF-ELSE'部分没有按要求执行。

<div id="stylized" class="myform">
<form id="form" name="form" method="POST" action="renting.php" >
<h1>Rent a Car</h1>
<label>Car ID
<span class="small">eg. Enter 1 for Mer1</span>
</label>
<input type="text" name="ID" id="ID" />
<input type="submit" style="margin:30px 100px;" name="submit" value="Check-Out">
<div class="spacer"></div>

</form>
</div>

现在,这个表格的行为是renting.php,如下:

<?php
session_start();
if(!session_is_registered(theUSERNAME)){
header("location:customer_login.php");
}

mysql_CONNECT("xx", "xx", "xx") OR DIE("Unable to connect");
mysql_SELECT_DB("xx") OR DIE("Unable to select database");
$ID = $_POST['ID'];
$result = mysql_query("SELECT AVAILABLE FROM car WHERE ID='$ID'");

if(mysql_fetch_array($result)>0)
{
$query="UPDATE car SET AVAILABLE=AVAILABLE-1 WHERE ID='$ID'";
mysql_query($query);
$query = "insert into rentalrecords (USERNAME,ID,RENTED_ON) values ('$_SESSION[theUSERNAME]','$_POST[ID]',CURDATE())";
$result = mysql_query($query);
header("location: list_Clogged.php");
}
else
{
echo "<script>alert('The car you chose is currently unavailable!'); location.href='rent.php';</script>"; 
}
?>

即使我有可用= 0,它仍然没有执行else部分,无论如何,它总是执行IF部分。 ID和AVAILABLE是我的MySQL表的属性'car'和租赁记录表我只想插入这些值。我知道这个脚本目前很容易被注入,但首先我想让事情变得有效!任何直接的帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您正在尝试计算资源......

if(mysql_fetch_array($result)>0)

您需要获取结果,然后计算这些结果中的项目:

$res = mysql_fetch_assoc($result);

if($res[0]['AVAILABLE'] > 0)

注意$ res [0]表示结果的第一行。您也可以使用mysql_fetch_row获取单个结果。

请记住,根本不应使用mysql_函数。考虑切换到mysqli或PDO。 此外,您需要清理输入。你只是盲目地接受$_POST['ID']

答案 1 :(得分:0)

mysql_fetch_array函数没有做你认为它做的事情;它返回一个数组,而不是单个值。