你的問題是,你不明白如何循環工作。
while($result = mysqli_fetch_array($mysqli_query)){
$DatabaseID = $result['DatabaseID'];
}
這個循環給予可變$DatabaseID
的$result['DatabaseID'];
值。當你第二次循環時$DatabaseID
已經改變了它的值。
因此,您基本上所做的就是遍歷您的SELECT
查詢的結果,並且每次將您提取的值提供給特定變量組覆蓋它們,每次您經過循環時都會覆蓋它們。
可以通過運行這個檢查你的邏輯錯誤:
while($result = mysqli_fetch_array($mysqli_query)){
echo $result['DatabaseID'];
echo $result['ItemName'];
echo $result['ItemStatus'];
echo $result['ItemCategory'];
$DatabaseID = $result['DatabaseID'];
$ItemName = $result['ItemName'];
$ItemStatus = $result['ItemStatus'];
$ItemCategory = $result['ItemCategory'];
}
你會看到,回聲給所有的結果,從選擇,但既然你繼續overwritting變量只有最後一個值將被保存。
編輯
我覺得你的問題最簡單的辦法將被保存,你需要爲一個數組中的值,然後與陣列工作。最簡單的方法是:
$mysqli_query = mysqli_query($mysqli, "SELECT * FROM ".$snt_stone." ");
while($result = mysqli_fetch_array($mysqli_query)){
$DatabaseID[] = $result['DatabaseID'];
$ItemName[] = $result['ItemName'];
$ItemStatus[] = $result['ItemStatus'];
$ItemCategory[] = $result['ItemCategory'];
}
然後,您可以運行print_r($DatabaseID)
來打印數組內容。
這樣的構造陣列將是相當不方便使用,檢查PHP手冊上的陣列,並創建一個最能滿足您的需要:http://php.net/manual/en/function.array.php
當然這也取決於你想以後用這些值做什麼在你的代碼中。
您的循環不會執行任何操作。它只是分配一些變量,這些變量將在下一次迭代中被覆蓋。 – Erik
@Erik我沒有提供完整的代碼,但它在下面做了很多。我相信錯誤是在查詢中,但可能是錯誤的 – Tristan12
我假設運行相同的查詢(打印出來)返回多個行,如果你直接在你的數據庫中執行SQL? – h2ooooooo