Причина, по которой ваш вид не отображает что-то, заключается в том, что ваш запрос не совсем корректен.
$datedue = 2011-01-27;
следует заключать в кавычки, поскольку дата является строкой.
$datedue = "2011-01-27";
Кроме того, вы не правильно следуете концепции MVC. Все запросы к базе данных и результаты должны происходить внутри модели. И вся обработка данных внутри контроллера.
Контроллер и представление не должны обрабатывать какие-либо соединения с базой данных, что является обязанностью модели. Поэтому я бы посоветовал создать модель и поместить все запросы к базе данных в одну или две функции. Контроллер затем вызовет эти функции и получит данные обратно. Затем он должен манипулировать им и передавать его в представление в чистом виде (это означает, что представление никогда не должно вызывать result()
Вот как ваш код должен быть структурирован:
CONTROLLER
class Tasks extends Controller {
function Tasks ()
{
parent::Controller();
$this->load->model('tasks_model');
$this->load->database();
}
function index()
{
$datedue = "2011-01-27";
$username = $this->tank_auth->get_username();
$tasks = $this->tasks_model->getTasks($username, $datedue);
$count = count($tasks);
$data['taskdetails'] = $tasks;
$data['total'] = $count;
$this->header();
$this->load->view('dashboard', $data);
}
}
MODEL
class Tasks_model extends Model {
function Tasks_model()
{
// Call the Model constructor
parent::Model();
}
function getTasks($username, $datedue) {
$sql = "SELECT taskid FROM relationships WHERE username = ? AND datedue = ?";
$tasks = $this->db->query($sql, array($username, $datedue));
$taskdetails = array();
foreach($tasks->result() as $row){
$taskid = $row->taskid;
array_push( $taskdetails, $this->getTasksDetails( $taskid ) );
}
return $taskdetails;
}
function getTasksDetails($taskid) {
$subsql = "SELECT * FROM tasks WHERE id = ?";
$taskdetails = $this->db->query($subsql, array($taskid));
return $taskdetails->row();
}
}
ВИД:
foreach($taskdetails as $task)
{
echo $task->name;
}