2015-06-08 78 views
1

我對PHP很陌生,在學校的最後一年項目中遇到了一些問題。我有一個問題使用php從Select語句中檢索整數。 我有2個表:使用php從MySql獲取整數

表露營:

capacity(int 11) 
spot_nb (int 11) 
location (varchar 20) 
availability (varchar 1) //this can be 'Y' or 'N' 

表預約:

reservation_nb (int 10 auto_increment) 
spot_nb (int 11) 
uin (varchar 8; null) 
persons_nb (int 5) 
price (int 11) 
email (varchar 60) 

而對於PHP,我有以下代碼:

$query5 = $conn->prepare("SELECT MAX(spot_nb) from camping where capacity=2 and availability='Y'"); 
$query5->execute(); 
$result = $query5->fetch(PDO::FETCH_ASSOC); 
$id = (int) $result; 

,以獲得最大從表露營的價值,並插入此代碼預訂

$query6 = $conn->prepare("INSERT INTO reservation (price, persons_nb, email, spot_nb) VALUES (:price, 2, :email, :id);"); 
$query6-> bindParam(':price', $campingNumber); 
$query6-> bindParam(':email', $email); 
$query6-> bindParam(':id', $id); 

但每次執行query6,所插入的spot_nb爲1

謝謝 亞歷克斯。

+0

你有人工覈對查詢,例如,使用MySQL工作臺? –

+0

是的,對於這個查詢返回的結果是11,我需要什麼,但在PHP它不工作,我不知道爲什麼它不工作。 – Alexandru

回答

1

使用fetchColumn()而不是fetch()

$query5 = $conn->prepare("SELECT MAX(spot_nb) from camping 
         where capacity=2 and availability='Y'"); 
$query5->execute(); 
$result = $query5->fetchColumn(); 
$id = (int) $result; 
+0

它工作完美。謝謝 – Alexandru

0

更新您的查詢

$query5 = $conn->prepare("SELECT MAX(spot_nb) as spot_nb from camping where capacity=2 and availability='Y'"); 
$query5->execute(); 
$result = $query5->fetch(PDO::FETCH_ASSOC); 
$id = $result['spot_nb']; 
+0

我已經試過了,每次都會出現這個錯誤:_Undefined index:spot_nb in /Applications/XAMPP/xamppfiles/htdocs/website/register.php on line 79_ – Alexandru

+0

print $ result並檢查你在那個數組中得到了什麼 –

+0

如果我打印結果我得到一個空白頁 – Alexandru