2016-03-03 67 views
0
$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']; 

     } 

我在我的數據庫中有多個東西,但由於某種原因,我的while循環只循環一次。我怎樣才能讓它循環遍歷每個項目/行?SQL查詢後while循環將無法運行PHP

+1

您的循環不會執行任何操作。它只是分配一些變量,這些變量將在下一次迭代中被覆蓋。 – Erik

+0

@Erik我沒有提供完整的代碼,但它在下面做了很多。我相信錯誤是在查詢中,但可能是錯誤的 – Tristan12

+0

我假設運行相同的查詢(打印出來)返回多個行,如果你直接在你的數據庫中執行SQL? – h2ooooooo

回答

-1
$mysqli_query = mysqli_query($mysqli, "SELECT * FROM ".$snt_stone." "); 
    while($result = mysqli_fetch_array($mysqli_query)){ 

     echo $result['DatabaseID']; 
     echo $result['ItemName']; 
     echo $result['ItemStatus']; 
     echo $result['ItemCategory']; 

    } 
+0

儘管這段代碼可能會回答這個問題,但提供關於爲什麼和/或代碼如何回答這個問題的附加上下文會提高它的長期價值。 –

2

你的問題是,你不明白如何循環工作。

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

當然這也取決於你想以後用這些值做什麼在你的代碼中。