在使用 PHP 連接 MySQL 數據庫,進行數據查詢時,經常會用到 mysql_fetch_array 函數。這個函數常用于從結果集中取得數據,對于需要對結果集逆序輸出的需求,可以用一些方法實現。
$result = mysql_query("SELECT * FROM mytable ORDER BY id DESC"); while($row = mysql_fetch_array($result)){ echo $row['id'] . " - " . $row['name'] . "
"; }
上述代碼中,mysql_query 函數執行的 SQL 語句中,ORDER BY id DESC 表示按照 id 字段倒序排序,這樣在使用 mysql_fetch_array 函數遍歷結果集時,就可以實現倒序輸出。
如果需要實現一段代碼中多次使用 mysql_fetch_array 函數時,每次都倒序輸出,可以寫成如下形式。
function fetch_array_desc($result){ $arr = array(); while($row = mysql_fetch_array($result)){ array_unshift($arr,$row); //將每一行數據插入數組頭部 } return $arr; } $result = mysql_query("SELECT * FROM mytable"); $rows = fetch_array_desc($result); foreach($rows as $row){ echo $row['id'] . " - " . $row['name'] . "
"; }
上述代碼中,自定義了一個 fetch_array_desc 函數,該函數返回的是一個倒序排列的關聯數組。利用該函數,可以避免重復寫倒序輸出的代碼。
但是需要注意的是,mysql_fetch_array 函數在 PHP 7.0.0 版本中已經被廢棄,取而代之的是 mysqli_fetch_array 函數。如果需要在較新的版本上使用該函數,需要做兼容性處理,或者考慮使用 mysqli 或 pdo 等替代品。