2013-01-10 24 views
0

我有一個汽車租賃系統,我正在努力。當用戶租用汽車時,系統首先應檢查可用汽車數量是否大於0,如果是,則調整「AVAILABLE = AVAILABLE + 1」(在跟蹤汽車的MySQL表格中),意味着將汽車租給用戶。另外,我正試圖記錄哪輛車去哪個用戶。所以我有另一個名爲rentalrecords的數據庫表,它接受登錄用戶的用戶名和值租用的汽車的ID。現在,問題是,我的'IF-ELSE'部分沒有按照需要執行。php選擇獲得一個變量,然後申請,如果其他的話

<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'的屬性,而in rental records表中我只是想插入這些值。我知道該腳本目前很容易受到注入攻擊,但首先我想讓事情順利進行!任何直接的幫助將不勝感激。

回答

0

mysql_fetch_array函數不會做你認爲它的功能;它返回一個數組,而不是一個單一的值。

+0

啊好吧,以便返回一個我想要的值? –

+0

將其返回值分配給一個變量(例如$ result),然後使用$ result [0]。 – asmecher

+0

只有正在執行的ELSE部分! –

1

你試圖計算資源...

if(mysql_fetch_array($result)>0) 

你需要獲得的結果,然後將這些結果中算一個項目:

$res = mysql_fetch_assoc($result); 

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

注$水庫[0]意味着結果的第一行。您也可以使用mysql_fetch_row獲取單個結果。

請記住,mysql_函數根本不應該使用。研究切換到mysqli或PDO。 另外,您需要清理輸入。你只是一味地接受$_POST['ID']

+0

only ELSE部分現在正在執行,即使可用> 0 –

+0

首先將在phpmyadmin中手動運行查詢以確保您應該期待任何事情。如果通過,請在IF條件之前嘗試var_dump($ res)。這應該讓你知道,如果你有任何資源。你可以使用mysql_error()來查看是否有mysql錯誤。 –

+0

好吧,現在就開始工作吧。謝謝凱。 –

相關問題