2012-12-12 76 views
-1

我試圖訪問一個數據庫表,這個表將有100多條記錄,我想選擇特定的行(通過它們的唯一ID)。這裏是我的一些php代碼...在php中選擇特定的sql行

<?php 

function connect() { 
    $conn = new mysqli('localhost', 'root', 'pass', 'db') or die('There was a problem connecting to the db'); 
    return $conn; 
} 

function get($conn) { 
    $stmt = $conn->prepare("SELECT * FROM camera") or die('There is a problem with the connection'); 
    $stmt->execute(); 
    $stmt->bind_result($id, $camera_id, $name, $location, $camera_status, $contact_name, $contact_phone); 

    $rows = array(); 

    while($row = $stmt->fetch()) { 
    $item = array(
      'id' => $id, 
     'camera_id' => $camera_id, 
      'name' => $name, 
     'location' => $location, 
    'camera_status' => $camera_status, 
    'contact_name' => $contact_name, 
    'contact_phone' => $contact_phone 
); 
$rows[] = $item; 
    } 
    return $rows; 
} 

$conn = connect(); 
$results = get($conn); 

?> 

將會有每頁9個結果,這些結果必須手動編碼。我能夠在數據庫中顯示所有結果,但我希望能夠挑選9個獨特的結果,顯示該行的內容以及提供編輯條目的方法。唯一的標識符是他們的$ id。

在php中選擇這些行最簡單的方法是什麼?

在此先感謝!

J.

+0

對不起,我忘記提及該網頁並不總是有9條記錄,它們不會總是連續的順序。有沒有辦法選擇例如$ id = 2;在身體和獨自顯示該ID的所有數據? – Javier

+0

請停止'foo或die()'-ing。由於發生單一錯誤而致使您的整個腳本無法正常運行,因此最多隻能是惡劣的做法,最壞的情況可能會破壞數據,並且每*次都會帶來可怕的用戶體驗。 – Charles

+0

我假設我只需要花費更多時間並使網頁動態加載這些值。我不明白如何使用'limit 0,9'可以幫助我選擇和顯示,例如,行ID 13和45. @charles感謝您指出'foo或die()' - 這是不好的做法。我希望你對像我這樣的不知道爲什麼的新秀有些參考。 – Javier

回答

1

使用限制

$start= 0; $end=9; //you can make $start =10; $end=9; for next run and so on.. 
SELECT * FROM camera limit "'.$start.'","'.$end.'" 
1

您可以使用limit選擇你行希望通過id w排序後ith order by。 首先limit 0, 9然後在第二次加載時使用limit 9,9等等。

0

我動態地做出整個腳本負載結果(foreach環),而不必手動添加它們。最初我想手動添加行,因爲視頻流將被限制在每個客戶端的基礎上,所以我只是添加了額外的數據庫列來解決此問題。

我仍然限制爲每頁9個Feed,所以我將使用limit功能,感謝您的幫助和反饋!