2015-06-08 42 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