Codeigniter как не выбирать дублирующиеся идентификаторы - PullRequest
1 голос
/ 15 февраля 2012

У меня есть база данных, и извлеченный массив выглядит примерно так (если я сам создавал массивы)

<?php

    $array[] = array('id' => 1, 'message' => 'test');
    $array[] = array('id' => 1, 'message' => 'test');
    $array[] = array('id' => 2, 'message' => 'test');
    $array[] = array('id' => 5, 'message' => 'test');
    $array[] = array('id' => 1, 'message' => 'test');
    $array[] = array('id' => 8, 'message' => 'test');
    $array[] = array('id' => 5, 'message' => 'test');
    $array[] = array('id' => 1, 'message' => 'test');

?>

Как вы можете видеть, есть несколько массивов с идентификатором 1, и я хочу выбрать последние 5 элементов, но если есть дубликат, я хочу пропустить его и двигаться дальше. Есть ли простое решение для этого?

Ответы [ 3 ]

1 голос
/ 15 февраля 2012

Используете ли вы Active Record Class?

Если это так, добавьте эту строку в свой запрос, прежде чем вы получите свои результаты:

$this->db->distinct();

Для текущей и будущей ссылки CI имеет и естьпохвалили за блестящую документацию!Всегда стоит взглянуть туда: http://codeigniter.com/user_guide/database/active_record.html

Если вы не используете Active Record Class, сделайте, как указано выше:).

0 голосов
/ 15 февраля 2012

Метод MySQL: Ссылка на эту статью @ w3schools: http://www.w3schools.com/sql/sql_distinct.asp

SELECT
  DISTINCT(table.id),
  table.message
FROM
 db.messages

Если вы непреклонны в этом вне предопределенного метода использования MySQL, вы можете использовать PHPS array_unique() функция ..

http://php.net/manual/en/function.array-unique.php

<?php 
  $result = array_unique($array);
  print_r($result);
0 голосов
/ 15 февраля 2012

вы должны использовать такой запрос:

"SELECT DISTINCT id, сообщение FROM your_table LIMIT 0,5"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...