Как нибудь можно оптимизировать? Помогите пожалуйста!
У меня такая программа:
Есть задания task_base
Есть выполнение задания task_act
Есть выполненные задания task_end
Мне надо пользователю выводить задания проверяя нет ли их в task_act и в task_end
Я делаю так
//Беру в массив айди выполненных заданий:
$result_end = mysql_query("SELECT * FROM `task_end` WHERE `uid_end` = '".$user."'");
while($url_end = mysql_fetch_assoc($result_end)){
$id_end[$vi] = $url_end['id'];
$vi++;
}
//Беру все задания
$result = mysql_query("SELECT * FROM `task_base` WHERE AND `uid_admin` <> '".$user."'");
while($urls = mysql_fetch_assoc($result)){
//Проверяю на выполненность (прогоняю массив)
if($id_end[$i] == $urls['id']){
$view=false;
break;
} else {
$view=true;
}
//Если выводить
if($view==true){
//Тут еще проверяю не выполняется ли задание
$url_act = mysql_num_rows(mysql_query("SELECT * FROM `task_act` WHERE `id` = ".$urls['id']." AND `uid` = '".$user."' LIMIT 1"));
if($url_action == 0){
echo 'ВЫВОЖУ';
}
}
1. Danir - 31 Января, 2013 - 11:17:48 - перейти к сообщению
2. DelphinPRO - 31 Января, 2013 - 11:45:49 - перейти к сообщению
у вас три таблицы что ли? почему выбрали такой вариант?
по-моему лучше все в одной:
ID, TASK, ..., STATUS
по-моему лучше все в одной:
ID, TASK, ..., STATUS
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- SELECT * FROM `tasks` WHERE `status` = 0; // Задача есть, но не выполняется
- SELECT * FROM `tasks` WHERE `status` = 1; // Задача выполняется
- SELECT * FROM `tasks` WHERE `status` = 2; // Задача выполнена
- SELECT * FROM `tasks`; // Все задачи