2014-02-18 4 views
0

У меня возникла проблема с получением последнего имени пользователя в моей базе данных. У базы данных, которую у меня есть, есть нет поля auto_increment id. Ниже мой код:CodeIgniter получить последнее имя пользователя без основного идентификатора

public function _username_check($user_name) 
{ 

    $this->db->select('user_name'); 
    $this->db->like('user_name', $user_name); 
    $this->db->order_by('user_date'); 
    $query = $this->db->get('users'); 


    if ($query->num_rows() > 0) 
    { 


     $row = $query->row(); 

     $db_username = $row->username; 

     echo $db_username; 
    } 

echo "did not get into the if function"; 
} 

я в настоящее время с помощью сообщества Auth файлов для моих проектов. У него нет поля auto increment id, поэтому я использую user_date для проверки последней записи.

Как-то он не входит в функцию if, я делаю что-то неправильно здесь?

Если пользователь должен был ввести имя пользователя, мне нужно будет вернуть имя пользователя2, и если пользователь должен был ввести пользователя, мне нужно будет вернуть user3.

Это правильный способ сделать это?

Любые виды душ могут помочь мне в этом? Заранее спасибо за помощь.

+0

Можете ли вы разместить свои другие структуры таблиц, чтобы мы знали, что было бы безопасно это сделать? Данный user_id не является основным полем ** (отдельно) ** установка его на автоматическое увеличение может быть неразумным, если она заполнена другой таблицей, которая делает user_id внешним ключом. Или вы можете легко добавить новый столбец типа 'ts_registered' (тип DATETIME) для записи, когда пользователь был зарегистрирован, и таким образом собрать последнего пользователя. – Prix

+0

Что вы подразумеваете под 'если бы пользователь вводил пользователя, мне нужно будет вернуть user3'? –

+0

Привет, я обновил свой вопрос, я поставил в скриншот таблицы, задаюсь вопросом, достаточно ли этого. – Dr3am3rz

ответ

1

Я предлагаю вам добавить additional column в таблицу пользователя с полем date time. Добавляя поле времени даты, вы можете найти последнее имя пользователя, не изменяя текущие отношения db.

$this->db->select('user_name'); 
$this->db->like('user_name', $user_name); 
$this->db->order_by('user_date','desc'); 
$this->db->limit(1); 
$query = $this->db->get('users'); 
+0

Привет, спасибо за помощь. Похоже, у меня есть столбец даты в базе данных. Если это так, как я могу его использовать? – Dr3am3rz

+0

, тогда вы можете упорядочить по столбцу даты и получить ограничение –

+0

Привет, я пробовал использовать метод, который вы мне сказали, и я обновил свой вопрос. Похоже, что он не войдет в функцию IF, что-то не так с моим кодом? – Dr3am3rz

Смежные вопросы