Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Оптимальный подход
Форумы портала PHP.SU » » Работа с СУБД » Оптимальный подход

Страниц (1): [1]
 

1. Danir - 31 Января, 2013 - 11:17:48 - перейти к сообщению
Как нибудь можно оптимизировать? Помогите пожалуйста!

У меня такая программа:
Есть задания 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 'ВЫВОЖУ';
}

}
2. DelphinPRO - 31 Января, 2013 - 11:45:49 - перейти к сообщению
у вас три таблицы что ли? почему выбрали такой вариант?

по-моему лучше все в одной:
ID, TASK, ..., STATUS

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `tasks` WHERE `status` = 0; // Задача есть, но не выполняется
  2. SELECT * FROM `tasks` WHERE `status` = 1; // Задача выполняется
  3. SELECT * FROM `tasks` WHERE `status` = 2; // Задача выполнена
  4. SELECT * FROM `tasks`; // Все задачи
3. Danir - 31 Января, 2013 - 11:55:17 - перейти к сообщению
DelphinPRO
У меня задачи для многоих пользователей, так что
task_base должно быть отдельно)

А прогон по массиву как Вам? не считаете, что будет сильно грузить цп?
4. DelphinPRO - 31 Января, 2013 - 12:32:10 - перейти к сообщению
Danir пишет:
А прогон по массиву как Вам? не считаете, что будет сильно грузить цп?
хз
одно могу сказать точно - архитектура бд неверная, отсюда всякий гемморой с циклами и запросами в циклах.
Danir пишет:
У меня задачи для многоих пользователей, так что

нужна связь пользователей с заданиями - сделайте таблицу связи

ИМХО
5. Danir - 31 Января, 2013 - 12:40:25 - перейти к сообщению
DelphinPRO вот оно что мне надо) посоветуешь где можно почитать по понятней о этих связях мускула?Улыбка
6. DelphinPRO - 31 Января, 2013 - 13:03:26 - перейти к сообщению
вот вам стартовая ссылка http://habrahabr[dot]ru/qa/11916/
оттуда поймете общие понятия, и направление дальнейшего поиска

лучше вот http://www[dot]online-academy[dot]ru/dem[dot][dot][dot]1/teor/teor4[dot]htm

 

Powered by ExBB FM 1.0 RC1