gpt4 book ai didi

php - 获取数组中的下一个元素 (PHP)

转载 作者:行者123 更新时间:2023-11-29 22:09:52 25 4
gpt4 key购买 nike

我为数组设置了两个模型。基本上,我想要实现的是根据我设置的订单 ID 从数据库中获取第一个下一个条目。

因此,我发送 ID 4,我找到 ID 4 的条目,其订单 ID 为 15。然后我想获取其后的第一个下一个项目,该项目的订单 ID 为 16。我尝试使用递增订单 ID 后+1,但不起作用。

使用我当前的代码,我得到相同的数组两次。

function first($id_domain) {
$this->db->select ( '*' );
$this->db->from ( 'domains' );
$this->db->where ( 'id_domain', $id_domain);
$result = $this->db->get ();
return $result->result_array ();

}

function second ($result) {
$this->db->select ( '*' );
$this->db->from ( 'domains' );
$this->db->where ( 'order', $result[0]['order'] + 1 ); //code that should get me the next entry, but doesn't work...
$this->db->where ( 'parent', $result[0]['parent'] );
$result2 = $this->db->get ();
return $result2->result_array ();

}

最佳答案

问题不是由您的代码引起的,但可能是由数据库中的记录引起的:对于该特定条件,它们不存在,或者您的匹配不完全正确。

如果您使用CodeIgniter我建议您将您的第二个函数更改为:

function second($result) {
$whereConds = array(
'order' => intval($result[0]['order'] + 1),
'parent'=> $result[0]['parent']
);
//if you don't have firephp print/echo/var_dump as you normally would
$this->firephp->log($whereConds);

$query = $this->db->get_where('domains', $whereConds);

$this->firephp->log($this->db->last_query());
if ($query->num_rows() <= 0) {
$this->firephp->log('No results');
return array();
} else {
return $query->result_array();
}
}

这样您就可以准确地跟踪问题。

顺便说一句,您还可以使用 get_where 中的 $offset 参数来获取下一个 id(也许只需使用父条件,因为您知道它们是按顺序排序的):

$limit=1;
$offset=intval($result[0]['order'] + 1);//adjust depending on the parent condition below: it can be just an integer such as 2
$whereConds = array(
'parent'=> $result[0]['parent']
);
$query = $this->db->get_where('domains', $whereConds, $limit, $offset);

关于php - 获取数组中的下一个元素 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31786833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com