Случайная запись из базы данных MySQL с CodeIgniter

Вы должны пропустить. Для вашего конкретного случая:

db.person.find().snapshot().forEach(
    function (elem) {
        db.person.update(
            {
                _id: elem._id
            },
            {
                $set: {
                    name: elem.firstname + ' ' + elem.lastname
                }
            }
        );
    }
);
27
задан designer-trying-coding 26 October 2009 в 23:50
поделиться

5 ответов

Codeigniter provides the ability to order your results by 'RANDOM' when you run a query. For instance

function get_random_page()
{
    $this->db->order_by('id', 'RANDOM');
    or
    $this->db->order_by('rand()');
    $this->db->limit(1);
    $query = $this->db->get('pages');
    return $query->result_array();

}

I've used this before and found it to work fine. Hope that helps

91
ответ дан 28 November 2019 в 04:03
поделиться

Отправка электронной почты - это особенность некоторых серверов imap. Ничего подобного в протоколе imap. Вы просто копируете свою электронную почту в специальный каталог imap на сервере, и он отправляет их. Я сомневаюсь, что Gmail поддерживает это.

очевидно.

6
ответ дан 28 November 2019 в 04:03
поделиться

Вы знаете, сколько записей в таблице? Вы можете сделать что-то вроде этого:

$count=mysql_exec('select count(*)-1 from some_table');
$count=rand(1,$count);

, затем:

select * from
some_Table
limit $count,1
4
ответ дан 28 November 2019 в 04:03
поделиться

Думаю, это не лучший способ. Например, вы удалили запись, которая сейчас == $ count . Вы должны повторить это для mysql_num_rows ()

0
ответ дан 28 November 2019 в 04:03
поделиться

Предположим, у нас есть таблица, из которой мы удалили некоторые строки. Возможно, идентификатор не отображается правильно. Для идентификатора образца: 1,5,24,28,29,30,31,32,33 (9 строк)

mysql_num_rows возвращает 9

Другие методы возвращают несуществующие строки: $ count = 9; // потому что mysql_num_rows () == 9 $ count = rand (1, $ count); // возвращает 4 для образца, но у нас не было строки с id = 4

Но с моим методом вы всегда получаете существующие строки. Вы можете разделить код и использовать первые 2 кода в любом месте сайта.

// Inside of Controller Class
    function _getReal($id,$name_of_table)
 {
 $Q=$this->db->where('id',$id)->get($name_of_table);
 if($Q->num_rows()>0){return $Q;}else{return FALSE;}
 }

 function _getLastRecord($name_of_table)
 {
 $Q=$this->db->select("id")->order_by('id DESC')->limit("1")->get($name_of_table)->row_array();
 return $Q['id'];
 }

 function getrandom()
 {
       $name_of_table="news";
 $id=rand(1,$this->_getLastRecord($name_of_table));
 if($this->_getReal($id,$name_of_table)!==FALSE)
 {
         echo $id;
         // Here goes your code
 }
 else
 {
         $this->getrandom();
 }
// END
1
ответ дан 28 November 2019 в 04:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: