2013-04-20 104 views
0

你基本上有两种选择使用PHP来呼应在HTML页面中的行:如何在同一查询中两次列出数据库行?

使用PDO:

$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name'); 

$stmt->execute(array(':name' => $name)); 

foreach ($stmt as $row) { 
    // do something with $row 
} 

使用的mysqli:

$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?'); 
$stmt->bind_param('s', $name); 

$stmt->execute(); 

$result = $stmt->get_result(); 
while ($row = $result->fetch_assoc()) { 
    // do something with $row 
} 

所以当你给$行的数据第一行的指针移动到查询的下一行。如果您要在页面的其他部分需要相同的数据列表,那么应该怎么做?

  1. 返回指针到第一行(怎么办呢?);回忆查询(并花费更多的时间和资源);
  2. 用数据创建一个数组(怎么办?);
+0

只需创建'全局数组' – 2013-04-20 19:15:31

回答

1

我总是用这个数组来代替。如果没有其他的话,至少会保持代码的高可读性。

+0

您有代码示例了解如何将$ row对象传递给数组变量以向我展示? :-) – PSyLoCKe 2013-04-20 19:40:22

+0

@EASI您可以在while循环'global $ myarray = array();'之前创建一个全局数组,然后在循环中,您只需将数据以您想要的方式传递给数组。这完全取决于你,我通常使用2D数组并传递如下值:'$ myarray [row ['ID']] = array(row ['firstname'],row ['lastname']);'。然后,您可以使用ID轻松访问这些数据....例如,数据库中ID为15的人的名字将位于$ myarray [15] [0];' – kellins 2013-04-21 13:51:41

相关问题