2014-10-11 86 views
0

所以我想從我的表中選擇最高(或最新)的ID並將其用於循環「for」。表中最大ID爲整數

我不喜歡這樣的:

$sql1="SELECT MAX(id_i) FROM images;"; 
$max_id= mysqli_query($link, $sql1); 

for($i=0;$i<=$max_id;$i++) 
{ 
... 
} 

但我得到一個錯誤:類mysqli_result的對象無法轉換成int:/

+2

這正是你想要使用一個對象作爲int發生了什麼。你實際上需要檢索結果。請參閱[這裏](http://php.net/manual/en/mysqli.query.php)瞭解mysqli_query的返回類型。 – 2014-10-11 16:47:24

+0

有沒有理由不能只使用'foreach'?聽起來像是[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)的例子。 – PeeHaa 2014-10-11 16:48:48

+1

@PeeHaa:也許他會在別的地方使用價值?我猜...我不知道我只是賽亞人。 – 2014-10-11 16:53:05

回答

0

這樣使用它:

$sql1="SELECT MAX(id_i) as max_id FROM images;"; 
$result= mysqli_query($link, $sql1); 


//for loop 
$row = mysqli_fetch_object($result); 
for($i=0;$i<=$row->max_id;$i++) 
{ 
... 
} 

//or using while (recommended) 
while($row = mysqli_fetch_object($result)) 
{ 
... 
} 
0

像Andrew P.在他的評論中寫道,mysqli_query返回的對象不是int。來自文檔:

返回FALSE失敗。對於成功的SELECTSHOWDESCRIBEEXPLAIN查詢mysqli_query()會返回一個mysqli_result對象。對於其他成功的查詢mysqli_query()將返回TRUE

因此,你需要來檢索對象想要的屬性。在你的情況下,像這樣:$row->max_id