作者starjou (周星星)
看板PHP
标题Re: [请益] 一段程式与阵列问题~请帮解答!
时间Sat May 3 17:52:25 2008
※ 引述《jolin19 (alex)》之铭言:
: : 程式如下:(不好意思~补上xoop定义的function)
: function execute($xoopsDB, $sql, $standalone = false, $multiple = false)
: {
: if ($standalone) {
: $result = $xoopsDB->query($sql) or die("DB Fail: $sql");
: if (DEBUG) echo "$sql ... ok\n";
: } else {
: if (SELECT_DB_NAME != XOOPS_DB_NAME)
: $xoopsDB->selectdb("FundEval");
: $result = $xoopsDB->query($sql) or die ("DB Fail: " .
: dumpLastQuery($xoopsDB->logger));
: if (DEBUG) echo "$sql ... ok<br>";
: if (SELECT_DB_NAME != XOOPS_DB_NAME)
: $xoopsDB->selectdb(XOOPS_DB_NAME);
: }
: if ($multiple) {
: $rows = array( );
: while($row = $xoopsDB->fetchArray($result))
: $rows[] = $row;
: return $rows;
: } else {
: $row = $xoopsDB->fetchArray($result);
: return $row;
: }
: }
: : $sql = "SELECT a.fund_id, a.name, b.acc_star, b.time_star, " .
: : " b.sharp6, b.sharp12, b.sharp24, ".
: : " b.ret, b.acc, b.time ".
: : "FROM $fund_table a, $fund_statics b ".
: : "WHERE b.fund_id=a.fund_id ".
: : $where .
: : "AND b.time_index='$date' ".
: : $sql_star;
: : $statics = execute($xoopsDB, $sql, false, true); // 这行不懂?
execute 传入四个参数
第一个是 xoop 的资料库操作物件
第二个是 要传入的 sql 叙述句
第三个是资料库切换,这边我不知道 xoops 的资料库是怎麽规划的,所以不晓得它的
作用是什麽,程式的意思是如果传入 false,切换到 "FundEval" 这个 database
否则会以 $xoopsDB 预设的 database 操作。
第四个参数是传回多列或只有一列。
在你的例子里,参数四是 true,所以 $statics 会是一个多维阵列,
应该就是 mysql_fetch_array($result) 的所有 rows 的阵列。
(它使用的是 $xoopsDB 的方法,作用应该是一样的吧)
print_r 出来大概是这样:
Array{
[0] Array{
func_id => ...
name => ....
.......
}
[1] Array{
func_id => ...
.......
}
}
里面的 [0] 阵列就是一 row
如果你要排序,一开始在 sql 叙述句里做 ORDER BY,
PHP 的多维阵列排序这边有例子:
http://tw2.php.net/manual/en/function.array-multisort.php
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.80.138.232
1F:→ starjou:这应该是 xoops 里的程式,它没有 document 吗? 05/03 17:53
2F:→ richer:还可以考虑用 usort 来进行排列 05/04 14:36
3F:→ richer:自定大小比较用的函数 在诡异的数值排列方式都有可以 05/04 14:37