Функция подсчета кода - PullRequest
1 голос
/ 16 ноября 2011

Я хочу подсчитать общее количество записей из таблицы с именем "songs_tbl" из моей базы данных.Поэтому я написал эту функцию в контроллере.

private function getHeaderInfo()
{
         $total_songs = $songs->count('distinct songs_tbl.song_id');
         $this->mysmarty->assign('total_songs',$total_songs);
}   

Я получил эту ошибку

Неустранимая ошибка: вызов функции-члена count () для необъекта в

Есть предложения?Спасибо.

С уважением,

Ответы [ 4 ]

5 голосов
/ 16 ноября 2011

Я думаю, что вы ищете:

$this->db->count_all('songs_tbl');

или, если вы хотите, чтобы там было различное, вам нужно будет сделать что-то вроде этого:

$this->db->select('song_id');
$this->db->distinct();
$this->db->from('songs_tbl');
$query = $this->db->get();
return $query->num_rows();

Поскольку есть / было?проблема с использованием функции count_all_results() и DISTINCT

EDIT

Я никогда не использовал smarty, но на основе кода в вопросе, который я представляючто-то вроде этого может работать, пожалуйста, исправьте меня, если я ошибаюсь:

private function getHeaderInfo()
{
    $total_songs = get_all_songs();// This function should be called through a model
    $this->mysmarty->assign('total_songs',$total_songs);
}

function get_all_songs(){ //THIS SHOULD BE IN A MODEL
    $this->db->select('song_id');
    $this->db->distinct();
    $this->db->from('songs_tbl');
    $query = $this->db->get();
    return $query->num_rows();
}

Редактировать 2

Мой предложенный макет будет что-то вродеэти строки (НЕПРОВЕРЕНО) с использованием CodeIgniter БЕЗ smarty:

Модель Song.php

class Song extends CI_Model {
    //Constructor and other functions

    function count_all_songs(){
        $this->db->select('song_id');
        $this->db->distinct();
        $this->db->from('songs_tbl');
        $query = $this->db->get();
        return $query->num_rows();
    }
}

Контроллер Songs.php

class Song extends CI_Controller {
    //Constructor and other functions

    function index(){ //This could be any page
        $this->load->model('Song'); //Could be in constructor
        $total_songs = $this->Song->count_all_songs();
        $this->load->view('songs_index.html', array('total_songs' => $total_songs));
    }
}

Просмотр songs_index.html

<html><head></head><body>
    Total Songs: <?php echo $total_songs ?>
</body></html>
1 голос
/ 16 ноября 2011

Попробуйте это

echo $this->db->count_all('songs_tbl');

Позволяет определить количество строк в конкретной таблице.

1 голос
/ 16 ноября 2011

Вы можете запросить таблицу и запросить счет из самой таблицы, например:

$result = mysql_query(SELECT count(*) FROM songs_tbl);
0 голосов
/ 25 марта 2014

Вы можете использовать это

$query = $this->db->get('distinct');
        if($query->num_rows())
        {
            return $query->num_rows();
        }else{
            return 0;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...