我想每天获取50条新记录。 如果有可能请告诉我。 我得到随机结果,但有时记录重复.plz任何人给出了一个想法 //用于简单/随机搜索
function search($data,$designation){
$this->db->select("*");
foreach($designation as $single_data) $this->db->or_like("designation",$single_data);
$this->db->group_start();
$this->db->like('name',$data);
$this->db->or_like('designation',$data);
$this->db->or_like('company',$data);
$this->db->or_like('email',$data);
$this->db->or_like('state',$data);
$this->db->or_like('city',$data);
$this->db->or_like('phone',$data);
$this->db->or_like('country',$data);
$this->db->or_like('pincode',$data);
$this->db->group_end();
$this->db->order_by('rand()');
$this->db->limit(100);
$this->db->from('content');
$query = $this->db->get();
return $query->result();
}
答案 0 :(得分:-1)
我理解这个问题,你想要选择随机记录,但是对于当天的剩余时间,这50个随机记录必须与当天的第一次相同。第二天,新的随机记录。
你可以在rand()中使用一个参数,并保持当天的数字相同。 我们取当前日期的unix时间戳
我将其限制在重要的界限:
<?php
$ts = mktime(0,0,0, 06, 30 , 2017);
$this->db->order_by('rand('. $ts.')');
?>
由您决定让mktime中的数字每天都在变化 (日期(&#39; d&#39;),日期(&#39; m&#39;)和日期(&#39; Y&#39;),但它赢了; t使代码更具可读性< / p>
-
然后完整地完成:
function search($data,$designation){
$this->db->select("*");
foreach($designation as $single_data) {
$this->db->or_like("designation",$single_data);
}
$this->db->group_start();
$this->db->like('name',$data);
$this->db->or_like('designation',$data);
$this->db->or_like('company',$data);
$this->db->or_like('email',$data);
$this->db->or_like('state',$data);
$this->db->or_like('city',$data);
$this->db->or_like('phone',$data);
$this->db->or_like('country',$data);
$this->db->or_like('pincode',$data);
$this->db->group_end();
$ts = mktime(0,0,0, date('m'), date('d') , date('Y');
$this->db->order_by('rand('. $ts.')');
$this->db->limit(100);
$this->db->from('content');
$query = $this->db->get();
return $query->result();
}
上面的代码应该给你100条随机记录。每天都有一套不同的套装,但整天都一样(假装你没有从表中删除记录)
将{}添加到foreach。本身并不需要,但使代码更具可读性;