我在下面有这个功能从我的数据库中获取pid号码。 pid是父ID。
public function test() {
$arr = array();
foreach ($this->make_parent_list() as $result) {
$arr[] = $result;
}
print_r(implode(',', $arr));
}
输出如下4,1
但我需要先打印最低的数字。 1,4
问题我如何确定何时查看父ID / pid 将显示我尝试过的最低数字
$this->db->order_by('pid', 'desc');
和$this->db->order_by('pid', 'asc');
public function make_parent_list() {
$this->db->where('fid', '5');
$query = $this->db->get('forum');
$return = array();
foreach ($query->result() as $category)
{
$this->db->where('fid', $category->pid);
$this->db->order_by('pid', 'desc');
$query = $this->db->get('forum');
$return[$category->pid] = $category->pid;
foreach ($query->result() as $category)
{
$return[$category->pid] = $category->pid;
}
}
return $return;
}
答案 0 :(得分:0)
我必须创建一个$ results变量,然后在foreach循环外面的sort()中包装
502479617.512
现在推出1,4
答案 1 :(得分:0)
我觉得你有点迷失了... order_by asc,desc确实有效。你的函数有order_by desc和一个不必要的foreach等。
假设:论坛表至少有两列pid和fid。我用
创建了一个表fid , pid
5 1
5 4
如果您将功能简化为......
// Given the fid, return an array of pid values in ascending order
public function make_parent_list() {
$this->db->where('fid', '5'); // Hardcoded for testing.
$this->db->order_by('pid', 'asc');
$query = $this->db->get('forum');
$pid_list = array();
foreach ($query->result() as $category) {
$pid_list[] = $category->pid;
}
return $pid_list;
}
然后你只需要
$results = $this->make_parent_list();
echo implode(',', $results);
那会给你1.4的结果。
如果你在函数的order_by中将asc更改为desc,那么你将获得4,1。