xoops模組開發->用while迴圈解$xoopsDB ->fetchArray($result)中資料的方法-教學撰寫:徐嘉裕Neil hsu

fetchArray($result)是個很好用的解迴圈Xoops內建函數,可以直接吧資料表的欄位名稱變成陣列的name值,例如像下面這樣的資料表,要抓紅框中數值。

如果用fetchArray($result)來解只需要

$Array= $xoopsDB ->fetchArray($result) ." where `nsn ` = '26'";

echo  $Array['keywordid'];

輸出結果就是紅框中的欄位資料數值tad_discuss

但這樣一次只能解一筆資料,如果要吧全部的資料都打包成一個陣列呢,基本上也是可以的,方法如下:

//查詢資料表while全部數值

function databasetablewhile($dbneme="",$where=""){
global $xoopsDB;
$sql = "select * from " . $xoopsDB->prefix($dbneme) . " ".$where."";
$result = $xoopsDB -> query($sql);
$i=1;
while($keyword= $xoopsDB ->fetchArray($result)){
$keywordArr[$i]=$keyword;
$i++;
};
return $keywordArr;
}

使用while吧$xoopsDB ->fetchArray($result)包起來跑回圈撈出資料,再用$i值來區分陣列,這樣就能吧整個資料表都打包成一個$keywordArr陣列。

接下來就是解出陣列資料,方法也很簡單,只要用foreach即可


//引入 databasetablewhile函數

$dbneme="neothemeskeyword"; //資料表名稱
$where=" order by nsn DESC"; //where內容
$keyword=databasetablewhile($dbneme,$where); //呼叫databasetablewhile()函數

//略...............
foreach($keyword as $key=> $val){
$tablecenter.="
<tr >
<td >".$keyword[$key]['nsn']."</td>
<td >".$keyword[$key]['keywordid']."</td>
<td >".$keyword[$key]['keywordcenter']."</td>
<td >".$keyword[$key]['title']."</td>
<td > <a class='btn btn-default active' href='".XOOPS_URL."/modules/neothemesadmin/admin/newkeyword.php?nsn=".$keyword[$key]['nsn']."'>"._MA_NEODWADMIN_EDITORA."</a>
<a id='keywordbotton{$key}' class='btn btn-default active delkeyword' mane='".$keyword[$key]['nsn'].",".$keywordidname['name']."' href='#NO'>"._MA_NEODWADMIN_DELETEA."</a></td>
</tr>
";
}
}
//略...............

看一下結果,全部資料都有顯示在UI介面上



用fetchArray($result)是不是比$xoopsDB -> fetchRow($result)要好用的,不用每個變數都去定義陣列,打包整個資料表再用foreach解出資料就好了,這方法也能用在遞回上,下次有機會再寫個教學給大家參考。


教學撰寫:徐嘉裕 Neil hsu

留言

這個網誌中的熱門文章

jquery.datepicker下拉月曆只顯示年-月的設定方法-教學撰寫:徐嘉裕Neil hsu

在CentOS7上安裝XAMPP並設定允許外部連線phpmyadmin的方法-教學撰寫:徐嘉裕Neil hsu

jQuery用.each()取代for迴圈