是否有可能永远不会重复新记录的数量?

时间:2017-06-30 10:19:35

标签: php mysql codeigniter

我想每天获取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();
}

1 个答案:

答案 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。本身并不需要,但使代码更具可读性;