From 0bc4dfeb0489d771febffbe3040a44f50dece628 Mon Sep 17 00:00:00 2001 From: Ricsi Date: Thu, 21 Feb 2019 20:14:44 +0000 Subject: [PATCH] fixed double presence error --- _ajax/update_presence.php | 17 +-- _include/include_presence.php | 251 +++++++++++++++++----------------- 2 files changed, 134 insertions(+), 134 deletions(-) diff --git a/_ajax/update_presence.php b/_ajax/update_presence.php index da46f76..96e27d3 100644 --- a/_ajax/update_presence.php +++ b/_ajax/update_presence.php @@ -4,20 +4,21 @@ include('class_sql.php'); include('class_log.php'); /* foreach ($_POST as $key => $value) { - trigger_error($_SERVER['HTTP_HOST'], E_USER_NOTICE); + trigger_error($_SERVER['HTTP_HOST'], E_USER_NOTICE); } */ if ($_SERVER['HTTP_HOST'] == 'badmintoncoach.hu') $sql = new sql('bc_mysql','root','','badminton_coach'); else $sql = new sql('localhost','tollashodos','uprRscU8bGpJ','tollashodos'); +$check_query = "SELECT * FROM presence WHERE pr_training_tr_id = " . $_POST['tr_id'] . " AND pr_user_kid_uk_id = " . $_POST['user_id'] . ";"; -if ($_POST['checked'] == "true") { - $sql->insert_into('presence', array('pr_user_kid_uk_id' => $_POST['user_id'], 'pr_training_tr_id' => $_POST['tr_id'])); - log::register('new_presence', 'Edzés: ' . $_POST['tr_id'] . ', gyerek: ' . $_POST['user_id'], null, $_POST['admin_id']); +if (!$sql->num_of_rows($check_query) && $_POST['checked'] == "true") { + $sql->insert_into('presence', array('pr_user_kid_uk_id' => $_POST['user_id'], 'pr_training_tr_id' => $_POST['tr_id'])); + log::register('new_presence', 'Edzés: ' . $_POST['tr_id'] . ', gyerek: ' . $_POST['user_id'], null, $_POST['admin_id']); } -else { - $sql->execute_query('delete from presence where pr_user_kid_uk_id = ' . $_POST['user_id'] . ' AND pr_training_tr_id = ' . $_POST['tr_id']); - log::register('delete_presence', 'Edzés: ' . $_POST['tr_id'] . ', gyerek: ' . $_POST['user_id'], null, $_POST['admin_id']); +elseif ($sql->num_of_rows($check_query) && $_POST['checked'] != "true") { + $sql->execute_query('delete from presence where pr_user_kid_uk_id = ' . $_POST['user_id'] . ' AND pr_training_tr_id = ' . $_POST['tr_id']); + log::register('delete_presence', 'Edzés: ' . $_POST['tr_id'] . ', gyerek: ' . $_POST['user_id'], null, $_POST['admin_id']); } -?> \ No newline at end of file +?> diff --git a/_include/include_presence.php b/_include/include_presence.php index 7a2e575..3e541b8 100644 --- a/_include/include_presence.php +++ b/_include/include_presence.php @@ -5,159 +5,158 @@ if ($this->is_id()) { - # GYEREKEK BEJELÖLÉSE - # lekérjük, hogy az elmúlt 4 héten kik voltak ilyen típusú edzésen [egyeznie kell a dayofweeknek és a type-nak] + # GYEREKEK BEJELÖLÉSE + # lekérjük, hogy az elmúlt 4 héten kik voltak ilyen típusú edzésen [egyeznie kell a dayofweeknek és a type-nak] - //alg.: lekérjük, hogy az elmúlt 4 hétben, ezen a napon, ezzel az edzés típussal milyen edzés ID-k vannak - //presence-ből countoljuk az user_kid ID-kat + //alg.: lekérjük, hogy az elmúlt 4 hétben, ezen a napon, ezzel az edzés típussal milyen edzés ID-k vannak + //presence-ből countoljuk az user_kid ID-kat - $presence_query = "SELECT * FROM user_kid ORDER BY uk_name;"; - $presence_assoc_array = $sql->assoc_array($presence_query); - //végig kell menni rajta h legeneráljuk az usereket + $presence_query = "SELECT * FROM user_kid ORDER BY uk_name;"; + $presence_assoc_array = $sql->assoc_array($presence_query); + //végig kell menni rajta h legeneráljuk az usereket - $users = array(); - //var_dump($presence_assoc_array); - /* - foreach ($presence_assoc_array as $presence) { - $user = new user_kid(); - $user->set_user_data_by_id($presence['uk_id']); - $users[] = $user; - } - */ + $users = array(); + //var_dump($presence_assoc_array); + /* + foreach ($presence_assoc_array as $presence) { + $user = new user_kid(); + $user->set_user_data_by_id($presence['uk_id']); + $users[] = $user; + } + */ - //training data - $training = new training(); - $training->set_training_data_by_id($this->get_id()); + //training data + $training = new training(); + $training->set_training_data_by_id($this->get_id()); - //SZŰRÉS - $tr_ids = array(); - for ($i=1; $i <=4 ; $i++) { - $actual_date = date("Y-m-d H:i:s" , strtotime($training->get_tr_date() . " - " . $i . " weeks")); - $tr_ids_query = "SELECT * FROM training WHERE tr_deleted = 0 AND tr_date = '" . $actual_date . "' and tr_training_type_trt_id = " . $training->get_tr_training_type_trt_id() . ";"; - $tr_id = $sql->single_variable($tr_ids_query); - if ($tr_id) $tr_ids[] = $tr_id; - } - //végigmegyünk az edzésekkel a presencen - $presence_query = " - SELECT `pr_user_kid_uk_id` , count( `pr_id` ) AS 'presence' - FROM `presence` - JOIN user_kid ON uk_id = pr_user_kid_uk_id - JOIN training ON tr_id = pr_training_tr_id - WHERE `pr_training_tr_id`". - (!empty($tr_ids)?"IN ( " . implode(',', $tr_ids) . " ) ":" ") - ."AND `uk_deleted` = 0 - AND `tr_deleted` = 0 - AND `uk_is_active` = 1 - GROUP BY `pr_user_kid_uk_id` - ORDER BY count( `pr_id` ) DESC, uk_name ASC; - "; - //echo $presence_query; - //echo $presence_query; - if (!empty($tr_ids)) { - $presence_assoc_array = $sql->assoc_array($presence_query); - foreach ($presence_assoc_array as $presence) { - $user = new user_kid(); - $user->set_user_data_by_id($presence['pr_user_kid_uk_id']); - $users[] = $user; - } - } + //SZŰRÉS + $tr_ids = array(); + for ($i=1; $i <=4 ; $i++) { + $actual_date = date("Y-m-d H:i:s" , strtotime($training->get_tr_date() . " - " . $i . " weeks")); + $tr_ids_query = "SELECT * FROM training WHERE tr_deleted = 0 AND tr_date = '" . $actual_date . "' and tr_training_type_trt_id = " . $training->get_tr_training_type_trt_id() . ";"; + $tr_id = $sql->single_variable($tr_ids_query); + if ($tr_id) $tr_ids[] = $tr_id; + } + //végigmegyünk az edzésekkel a presencen + $presence_query = " + SELECT `pr_user_kid_uk_id` , count( `pr_id` ) AS 'presence' + FROM `presence` + JOIN user_kid ON uk_id = pr_user_kid_uk_id + JOIN training ON tr_id = pr_training_tr_id + WHERE `pr_training_tr_id`". + (!empty($tr_ids)?"IN ( " . implode(',', $tr_ids) . " ) ":" ") + ."AND `uk_deleted` = 0 + AND `tr_deleted` = 0 + AND `uk_is_active` = 1 + GROUP BY `pr_user_kid_uk_id` + ORDER BY count( `pr_id` ) DESC, uk_name ASC; + "; + //echo $presence_query; + if (!empty($tr_ids)) { + $presence_assoc_array = $sql->assoc_array($presence_query); + foreach ($presence_assoc_array as $presence) { + $user = new user_kid(); + $user->set_user_data_by_id($presence['pr_user_kid_uk_id']); + $users[] = $user; + } + } - //legeneráljuk a maradékot - $exeptions = array(); - $rest_users = array(); - foreach ($users as $user) { - $exeptions[] = $user->get_uk_id(); - } + //legeneráljuk a maradékot + $exeptions = array(); + $rest_users = array(); + foreach ($users as $user) { + $exeptions[] = $user->get_uk_id(); + } - if (!empty($exeptions)) $rest_user_query = "SELECT * FROM user_kid WHERE uk_id NOT IN (" . implode(',', $exeptions) . ") AND uk_deleted = 0 AND uk_is_active = 1 ORDER BY uk_name ASC;"; //ha vannak kiemelt userek - else $rest_user_query = "SELECT * FROM user_kid WHERE uk_deleted = 0 AND uk_is_active = 1 ORDER BY uk_name;"; //ha nincsenek kiemelt userek - $rest_user_assoc_array = $sql->assoc_array($rest_user_query); - foreach ($rest_user_assoc_array as $rest_user) { - $user = new user_kid(); - $user->set_user_data_by_id($rest_user['uk_id']); - $rest_users[] = $user; - } + if (!empty($exeptions)) $rest_user_query = "SELECT * FROM user_kid WHERE uk_id NOT IN (" . implode(',', $exeptions) . ") AND uk_deleted = 0 AND uk_is_active = 1 ORDER BY uk_name ASC;"; //ha vannak kiemelt userek + else $rest_user_query = "SELECT * FROM user_kid WHERE uk_deleted = 0 AND uk_is_active = 1 ORDER BY uk_name;"; //ha nincsenek kiemelt userek + $rest_user_assoc_array = $sql->assoc_array($rest_user_query); + foreach ($rest_user_assoc_array as $rest_user) { + $user = new user_kid(); + $user->set_user_data_by_id($rest_user['uk_id']); + $rest_users[] = $user; + } - //TRAINING-COACH ARRAY - $trc_query = "SELECT * FROM training_coach JOIN user_coach ON ua_id = trc_coach_uc_id WHERE trc_helper = 0 AND ua_deleted = 0 AND trc_training_tr_id = " . $this->get_id(); - $trc_coaches = array(); - $trc_assoc_array = $sql->assoc_array($trc_query); - foreach ($trc_assoc_array as $trc_data) { - $new_coach = new user(); - $new_coach->set_user_data_by_id($trc_data['trc_coach_uc_id']); - $trc_coaches[] = $new_coach; - } + //TRAINING-COACH ARRAY + $trc_query = "SELECT * FROM training_coach JOIN user_coach ON ua_id = trc_coach_uc_id WHERE trc_helper = 0 AND ua_deleted = 0 AND trc_training_tr_id = " . $this->get_id(); + $trc_coaches = array(); + $trc_assoc_array = $sql->assoc_array($trc_query); + foreach ($trc_assoc_array as $trc_data) { + $new_coach = new user(); + $new_coach->set_user_data_by_id($trc_data['trc_coach_uc_id']); + $trc_coaches[] = $new_coach; + } - //TRAINING-HELPER ARRAY - $trc_query = "SELECT * FROM training_coach JOIN user_coach ON ua_id = trc_coach_uc_id WHERE trc_helper = 1 AND ua_deleted = 0 AND trc_training_tr_id = " . $this->get_id(); - $trc_helpers = array(); - $trc_assoc_array = $sql->assoc_array($trc_query); - foreach ($trc_assoc_array as $trc_data) { - $new_coach = new user(); - $new_coach->set_user_data_by_id($trc_data['trc_coach_uc_id']); - $trc_helpers[] = $new_coach; - } + //TRAINING-HELPER ARRAY + $trc_query = "SELECT * FROM training_coach JOIN user_coach ON ua_id = trc_coach_uc_id WHERE trc_helper = 1 AND ua_deleted = 0 AND trc_training_tr_id = " . $this->get_id(); + $trc_helpers = array(); + $trc_assoc_array = $sql->assoc_array($trc_query); + foreach ($trc_assoc_array as $trc_data) { + $new_coach = new user(); + $new_coach->set_user_data_by_id($trc_data['trc_coach_uc_id']); + $trc_helpers[] = $new_coach; + } - //var_dump($users); + //var_dump($users); - //headcount - $headcount_query = "SELECT * FROM presence WHERE pr_training_tr_id = " . $this->get_id() . ";"; - $headcount = $sql->num_of_rows($headcount_query); + //headcount + $headcount_query = "SELECT * FROM presence WHERE pr_training_tr_id = " . $this->get_id() . ";"; + $headcount = $sql->num_of_rows($headcount_query); - //csak lista - $s_users = array(); - $presence_query = " - SELECT `pr_user_kid_uk_id` - FROM `presence` - JOIN user_kid ON uk_id = pr_user_kid_uk_id - WHERE `pr_training_tr_id` = ".$this->get_id()." - AND uk_deleted = 0 - ORDER BY uk_name ASC; - "; + //csak lista + $s_users = array(); + $presence_query = " + SELECT `pr_user_kid_uk_id` + FROM `presence` + JOIN user_kid ON uk_id = pr_user_kid_uk_id + WHERE `pr_training_tr_id` = ".$this->get_id()." + AND uk_deleted = 0 + ORDER BY uk_name ASC; + "; - $presence_assoc_array = $sql->assoc_array($presence_query); - foreach ($presence_assoc_array as $presence) { - $s_user = new user_kid(); - $s_user->set_user_data_by_id($presence['pr_user_kid_uk_id']); - $s_users[] = $s_user; - } + $presence_assoc_array = $sql->assoc_array($presence_query); + foreach ($presence_assoc_array as $presence) { + $s_user = new user_kid(); + $s_user->set_user_data_by_id($presence['pr_user_kid_uk_id']); + $s_users[] = $s_user; + } - $smarty->assign('training', $training); - $smarty->assign('trainings', $tr_ids); - $smarty->assign('headcount', count($presence_assoc_array)); - $smarty->assign("trc_coaches", $trc_coaches); - $smarty->assign("trc_helpers", $trc_helpers); - $smarty->assign('presence_assoc_array', $presence_assoc_array); - $smarty->assign('users', $users); - $smarty->assign('sorted_users', $s_users); - $smarty->assign('rest_users', $rest_users); - $smarty->assign('tr_id', $this->get_id()); + $smarty->assign('training', $training); + $smarty->assign('trainings', $tr_ids); + $smarty->assign('headcount', count($presence_assoc_array)); + $smarty->assign("trc_coaches", $trc_coaches); + $smarty->assign("trc_helpers", $trc_helpers); + $smarty->assign('presence_assoc_array', $presence_assoc_array); + $smarty->assign('users', $users); + $smarty->assign('sorted_users', $s_users); + $smarty->assign('rest_users', $rest_users); + $smarty->assign('tr_id', $this->get_id()); - $smarty->display("presence.tpl"); + $smarty->display("presence.tpl"); } else { - $traning_list_query = "SELECT * FROM training WHERE tr_deleted = 0 ORDER BY tr_date DESC;"; - $training_list_assoc_array = $sql->assoc_array($traning_list_query); + $traning_list_query = "SELECT * FROM training WHERE tr_deleted = 0 ORDER BY tr_date DESC;"; + $training_list_assoc_array = $sql->assoc_array($traning_list_query); - $training_array = array(); - foreach ($training_list_assoc_array as $training_list_array) { - $training = new training(); - $training->set_training_data_by_id($training_list_array['tr_id']); - $training_array[] = $training; - } - //var_dump($training_array); - $smarty->assign('edit', $tpl); - $smarty->assign("training_array", $training_array); - $smarty->display("presence_list.tpl"); + $training_array = array(); + foreach ($training_list_assoc_array as $training_list_array) { + $training = new training(); + $training->set_training_data_by_id($training_list_array['tr_id']); + $training_array[] = $training; + } + //var_dump($training_array); + $smarty->assign('edit', $tpl); + $smarty->assign("training_array", $training_array); + $smarty->display("presence_list.tpl"); }