Witam wszystkich,
piszę proste api do planera dnia. Czy da się zastąpić 3 SELECTY jednym aby otrzymać następującą odpowiedź:
(
(
(
(
[id] => 16
[user_id] => 1
[task] => Testowe zadanie specjalne
[note] => Testowo testowaÄ testowane zadania. Test testowy testowany testowo wielokrotnie.
[priority_id] => 1
[done] => 0
[timestamp] => 2015-05-22 09:59:34
)
)
(
(
[id] => 14
[user_id] => 1
[task] => Testowe zadanie specjalne
[note] => Testowo testowaÄ testowane zadania. Test testowy testowany testowo wielokrotnie.
[priority_id] => 1
[done] => 0
[timestamp] => 2015-05-22 09:59:20
)
)
(
)
)
(
(
(
[id] => 15
[user_id] => 1
[task] => Testowe zadanie specjalne
[note] => Testowo testowaÄ testowane zadania. Test testowy testowany testowo wielokrotnie.
[priority_id] => 1
[done] => 0
[timestamp] => 2015-05-22 09:59:23
)
)
(
)
(
)
)
)
Bardzo mi zależy na takiej strukturze tabeli. Tak wygląda teraz część mojego kodu w php:
class DataProvider {
private $db;
public function __construct($db)
{
$this->db = $db;
}
public function getRequestData()
{
}
public function getTasks($userId, $date)
{
//pobiera zadania ktore maja okreslona godzine i NIE zostaly wykonane
$sql = "SELECT ds_tasks.*
FROM ds_tasks LEFT JOIN ds_priorities
ON ds_tasks.priority_id=ds_priorities.id
WHERE user_id = :uid AND `date` = :date AND done = 0 AND`time` IS NOT NULL";
$timed = $this->db->fetchAll($sql, array( 'uid' => (int
) $userId, 'date' => $date));
//pobiera zadania ktore NIE maja okreslonej godziny i NIE zostaly wykonane
$sql = "SELECT ds_tasks.*
FROM ds_tasks LEFT JOIN ds_priorities
ON ds_tasks.priority_id=ds_priorities.id
WHERE user_id = :uid AND `date` = :date AND done = 0 AND `time` IS NULL";
$other = $this->db->fetchAll($sql, array( 'uid' => (int
) $userId, 'date' => $date));
//pobiera zadania ktore sa wykonane
$sql = "SELECT ds_tasks.*
FROM ds_tasks LEFT JOIN ds_priorities
ON ds_tasks.priority_id=ds_priorities.id
WHERE user_id = :uid AND `date` = :date AND done = 1 AND `time` IS NULL";
$done = $this->db->fetchAll($sql, array( 'uid' => (int
) $userId, 'date' => $date));
//tworzy tabele z zadaniami
'timed' => $timed,
'other' => $other,
'done' => $done
);
return $tasks;
}
public function getTimeIntervalTasks($userId, $date, $endDate)
{
$tasks[$date] = $this->getTasks($userId, $date);
}
return $tasks;
}
}
Z góry dzięki za jakąkolwiek pomoc (IMG:
style_emoticons/default/tongue.gif) .