2015-06-15 85 views
1

我是PHP和MySQL的新手,希望有人能幫助我解決這個問題。PHP/MySQL:如何存儲在數組中選擇結果

我有一個MySql數據庫與表「TranslationsMain」和下面的PHP查詢。 這將從數據庫表中返回列「German」(包括相應的ID)中的所有項目,並且目前工作正常。

而不是回顯整個列表(我只是在這裏做測試),**我怎麼能將結果存儲在一個數組中,使得數組中的每個項目都以其值和唯一的ID +我怎麼能通過引用他們的ID來回應這個數組中的特定項目?

實施例:
我想響應從該陣列,用於ID「xyz」的項目值(沒有再次調用分貝,因爲這將需要的多個項目的頁)。

我的PHP:

<?php 
    require_once("includes/header.php"); 

    $tblTranslations = "TranslationsMain"; 

    $conn = new mysqli($servername, $username, $password, $dbname); 
    if($conn->connect_error){ 
     die("Connection failed: " . $conn->connect_error); 
    } 
    $sql = "SELECT * FROM " . $tblTranslations; 
    $translations = $conn->query($sql); 

    // for testing only 
    if($translations->num_rows > 0){ 
     echo "<table><tr><th>ID</th><th>Translation</th></tr>"; 
     while($translation = $translations->fetch_assoc()){ 
      echo "<tr><td>" . $translation["ID"] . "</td><td>" . $translation["German"] . "</td></tr>"; 
     } 
     echo "</table>"; 
    }else{ 
     echo "0 results"; 
    } 

    $conn->close(); 
?> 

更新: 什麼我找這裏是如何創建一個二維數組以及如何從中獲取。

很多感謝, 邁克

回答

1
if($translations->num_rows > 0){ 
    $result_arr = array(); 
    echo "<table><tr><th>ID</th><th>Translation</th></tr>"; 
    while($translation = $translations->fetch_assoc()){ 
     echo "<tr><td>" . $translation["ID"] . "</td><td>" . $translation["German"] . "</td></tr>"; 
    $result_arr[] = $translation; 
    } 
    echo "</table>"; 
}else{ 
    echo "0 results"; 
} 


// now you can iterate $result_arr 


foreach($result_arr as $row){ 
    echo "<tr><td>" . $row["ID"] . "</td><td>" . $row["German"] . "</td></tr>"; 
} 
+0

非常感謝 - 這看起來很不錯!我只用表進行測試,但以後不會這樣做,因爲我只需要回顯單個值。隨着你的方法和我的ID增加數字我將如何迴應例如ID =「5」的項目的值? – keewee279

+1

你的id = 5將是表右邊的第五行......所以當創建數組時,第五行被分配給第五個子數組,如果你想使用id = 5的值。你需要像這樣$ result_arr [4] [「value']。現在如果你想要的話,你可以分配用戶定義的鍵到你的數組,而不是默認鍵這樣你就可以像這樣訪問數據$ result_arr [ 5] ['價值']第5 ID和$ result_arr [6] ['價值']第6 ID –

+0

再次感謝!我認爲關鍵的解決方案不會在我這裏工作,因爲它很難知道哪個項目哪些ID和這可能會更改,當更多的項目被添加到數據庫。我正在尋找的是一種方式,我從數據庫中獲取ID和值,然後將它們都保存在數組中,以便我可以獲取它如果我沒有解釋得很好,對我來說還是全新的。 – keewee279

相關問題