Подскажите как ускорить вывод результата? На странице пользователя нужно считать кол просроченных заявок и записывать это кол-во дней в таблицу. Вот таблица: [sql]create table $name_table (id INT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (id),//Индексное поле status varchar(10),//Статус заявки(done-заявка закрыта,overstay-просроченна) id_user_isp varchar(70),//Идентификатор пользователя days_alert varchar(10),//Кол-во дней на которые просрочена заявка date_to_isp date//Дата получения заявки );");[/sql] Вот код который нужно ускорить: PHP: $select_overstay=mysql_query("select id,date_to_isp,date_to_done from $data_temp_name[temp_name] where id_user_isp='$_SESSION[id]' and status!='done';"); $count_overstay=mysql_num_rows($select_overstay); for($n=0;$n<$count_overstay;$n++) { require('../other_page/date_between.php'); //Здесь считаеться $age if($age>2)//разница в днях после которой считать заявку просроченной { $razn=abs($age-2); $data=mysql_fetch_array($select_overstay); $update_overstay=mysql_query("update $data_temp_name[temp_name] set status='overstay',days_alert='$razn' where id='$data[id]' ;"); } } Сейчас в таблице 10000 тыс записей и процедура обновления кол-ва просроченных дней тормозит.
А зачем в цикле файл инклюдить? Вынеси из цикла 10000 записей, соответственно у тебя выполняется 10 000 раз? Я думаю, тут одним запросом можно сделать
А как вне цикла инклудить если в нем находиться $age у каждой заявки свое значение. Да update и условие выполняется 10000 тыс. раз. И повторяется снова при каждом обновлении страницы. Я так понимаю что индексирование здесь ничего не даст.
Eser сядь, подумай, представь, что ты - компьютер, и тебе нужно делать эти вычисления самому вручную. иногда помогает могу посоветовать полностью пересмотреть архитектурный подход к решению данной простой задачи, потому что текущий подход - полный отстой, и обычно советуют убиться о ближайшую стенку. через сколько дней заявка считается просроченной? является ли это число разным для разных заявок? нафиг хранить кол-во просроченных дней в базе, когда его можно вычислять динамически? а статус могу посоветовать хранить в виде int-а при таком подходе обновление базы не нужно, в базе хранится только дата поступления заявки, а вычисление просроченных дней происходит автоматически, так же как и подсчёт количества, и вывод пользователю и прочеее, и прочее...
массивы велкам ? $i++ после выборкой из массива строишь переменные для запроса/вывода что там надо. вроде правильно понял =)