2012-12-12 75 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功能,感谢您的帮助和反馈!