Esempio n. 1
0
    public function getProgramms()
    {
        //todo извлекать одним запросом.
        $programms = $this->getArray('
SELECT g.id_gym_programm AS id_prog,
       g.name AS prog_name,
       g.description AS prog_descr,
       e.id_gym_programm_exercise AS id_prog_ex,
       e.id_gym_ex,
       if(e.name is null, ex.name, e.name) AS ex_name,
       e.description AS ex_descr,
       s.value as set_val
  FROM gym_programm g,
             gym_programm_exercises e
          LEFT JOIN
             gym_exercises ex
          ON ex.id_gym_ex = e.id_gym_ex
       LEFT JOIN
          gym_sets s
       ON s.id_gym_programm_exercise = e.id_gym_programm_exercise
 WHERE g.id_gym_programm = e.id_gym_programm
ORDER BY g.id_gym_programm ASC, e.n_order ASC, s.n_order ASC');
        $progData = array();
        $curProg = null;
        foreach ($programms as $prog) {
            $progId = (int) $prog['id_prog'];
            if (!$curProg || $curProg->getId() != $progId) {
                $curProg = new GymProgramm(array_sift_out($prog, array('id_prog' => 'id', 'prog_name' => 'name', 'prog_descr' => 'comment')));
                $progData[] = $curProg;
            }
            $progExId = (int) $prog['id_prog_ex'];
            $ex = $curProg->getExercise($progExId);
            if (!$ex) {
                $ex = new GymProgrammEx(array_sift_out($prog, array('id_gym_ex' => 'id', 'ex_name' => 'name', 'ex_descr' => 'comment')));
                $curProg->addExercise($progExId, $ex);
            }
            if (!isEmptyInArray('set_val', $prog)) {
                $ex->addSet($prog['set_val']);
            }
        }
        return $progData;
    }
Esempio n. 2
0
<?php

require_once 'AjaxTools.php';
$data = RequestArrayAdapter::inst()->arr('programm');
if ($data) {
    $programm = new GymProgramm($data);
    if ($programm->hasExercises()) {
        $programmId = GymManager::getInstance()->saveProgramm($programm);
        json_success($programmId);
    } else {
        json_error('Программа не содержит ни одного упражнения');
    }
} else {
    json_error('Не переданы данные');
}