ВЫБЕРИТЕ COUNT определенных значений столбцов из подходящих строк в JOINed таблице с помощью построителя запросов CodeIgPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 ВЫБЕРИТЕ COUNT определенных значений столбцов из подходящих строк в JOINed таблице с помощью построителя запросов CodeIg

Сообщение Anonymous »

Как мне посчитать строки из базы данных?
У меня есть 2 связанные таблицы, а именно:
анкета

Код: Выделить всё

questionnaire_id
type_id_fk
question
answer
pg
ответ_лист

Код: Выделить всё

answer_sheet_id
questionnaire_id_fk
choices_id_fk
user_id_fk
status
Как я могу подсчитать количество оставшихся без ответа вопросов и неправильных вопросов?
Вот моя модель:

Код: Выделить всё

function countUnanswered($userID, $type)
{
$this->db->select('*');
$this->db->from('questionnaire q');
$this->db->join('answer_sheet a', 'q.questionnaire_id=a.questionnaire_id_fk');
$this->db->where('q.type_id_fk', $type);
$this->db->where('a.user_id_fk', $userID);
$query = $this->db->get();
$rowcount = $query->num_rows();
return $rowcount;
}

function countIncorrect($userID, $type) {
$this->db->select('*');
$this->db->from('answer_sheet a');
$this->db->join('questionnaire q', 'q.answer!=a.choices_id_fk', 'LEFT');
$this->db->where('q.type_id_fk', $type);
$this->db->where('a.user_id_fk', $userID);
$query = $this->db->get();
$rowcount = $query->num_rows();
return $rowcount;
}
Вот мое мнение:

Код: Выделить всё

Unanswered: 
Incorrect: 
Вот мой контроллер

Код: Выделить всё

class Results extends CI_Controller
{
public function view($page = 'results')
{
if (!file_exists(APPPATH . '/views/pages/results/' . $page . '.php')) {
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page) . ' | TOEFL Practice Test'; // Capitalize the first letter
$data['page'] = $page;
$this->load->view('template/header', $data);

if (isset($this->session->userdata['logged_in'])) {
$data['userID'] = ($this->session->userdata['logged_in']['userID']);
$data['username'] = ($this->session->userdata['logged_in']['username']);
$data['email'] = ($this->session->userdata['logged_in']['email']);

$userID = $this->session->userdata['logged_in']['userID'];

$this->load->view('pages/results/' . $page, $data);
} else {
$this->load->view('pages/user/login_form', $data);
}

$this->load->view('template/footer', $data);
}
}
Я вставил 2 вопроса в таблицу анкеты и ответил на эти 2 вопроса, но функция Без ответа возвращает 2. Для неправильной функции возвращается 3

Подробнее здесь: https://stackoverflow.com/questions/315 ... ed-table-u
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»