[英]How to index the result of a mySql query as an array of array?
如果我需要選擇和使用數據庫中表的每個元素的信息,則過程如下:
$query = "...mySql query...";
$query_result = mysql_query($query) or die (mysql_error());
然后,如果我希望訪問結果字段,則可以使用函數mysql_fetch_array()並按以下方式訪問它們:
$query_result_array = mysql_fetch_array($query_result);
echo $query_result_array['field_1'];
....
echo $query_result_array['field_i'];
....
但是由於查詢可以返回更多元素,因此我希望使用索引從0到mysql_num_rows($ query_result)的數組訪問它們中的每個元素。
舉個例子:
echo $query_result_array['field_i'][0];
....
echo $query_result_array['field_i'][mysql_num_rows($query_result)];
應該為表中的每個選定元素打印字段i的值。
是否有可以為我完成工作的功能? 如果沒有,關於如何做的任何建議?
在此先感謝您的幫助。
我認為沒有這種方法。 你必須自己做。
這可能是替代
$res = mysql_query("..SQL...");
$arr = array();
while ($row = mysql_fetch_assoc($res)) {
$arr[] = $row;
}
var_dump($arr);
要么
$res = mysql_query("..SQL...");
for
(
$arr = array();
$row = mysql_fetch_assoc($res);
$arr[] = $row
);
var_dump($arr);
嘗試類似的東西:
$res = mysql_query("..mySql query...");
$arr = array();
while ($row = mysql_fetch_assoc($res)) {
$query_result_array[] = $row;
}
那么您可以像以下方式訪問數據:
echo $query_result_array[0]['field_i'];
根據之前的2個答案,這些作者假設平常的SO作者熟悉創建函數之類的事情
function sqlArr($sql) { return an array consists of
$ret = array();
$res = mysql_query($sql) or trigger_error(mysql_error()." in ".$sql);
if ($res) {
while ($row = mysql_fetch_assoc($res)) {
$ret[] = $row;
}
}
return $ret;
}
$array = sqlArr("SELECT * FROM table");
foreach ($array as $row) {
echo $row['name'],$row['sex'];
}
此結果數組的結構與您要求的結構不同,但這也更加方便。 如果您仍然需要不尋常的一個,則必須告訴您如何使用它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.