2013-04-20 79 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

相關問題