簡體   English   中英

如何將mySql查詢的結果索引為array數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM