繁体   English   中英

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

[英]php select to get a variable and then apply if else on it

我有一个正在使用的租车系统。 当用户租车时,系统应首先检查可用车数是否大于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”的属性,而租借记录表中的属性只是我想插入这些值。 我知道该脚本目前很容易被注入,但是首先我要使事情正常! 任何即时帮助将不胜感激。

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

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']

mysql_fetch_array函数无法执行您认为的工作; 它返回一个数组,而不是单个值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM