Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 26

Выполнение скрипта по cron

20.06.2015, 20:12. Показов 1636. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!) Помогите мне пожалуйста, есть БД с таблицами сотрудников (petka, vanka, vasya), у них в таблицах есть задание с датой, до которой им надо это задание выполнить, если задание не выполнено вместо даты записывается "Не выполнено". Я так понимаю, что проверку сегодняшней даты и выполнение скрипта должно проходить через крон. Но на каждую таблицу придется писать отдельно скрипт, а таблицы каждый раз добавляются. Подскажите, пожалуйста, как сделать чтоб каждую таблицу сотрудника скрипт обрабатывал?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.06.2015, 20:12
Ответы с готовыми решениями:

Регулярное выполнение скрипта Cron или нет
Доброго времени суток, столкнулся с интересной задачей. Нужно выполнять определенный скрипт каждый день. Собственно вопросов...

Cron - запуск php скрипта по расписанию
Доброго времени суток. Сабж: есть хостинг, на хостинг я закинул свой сайт, так же я закинул некий file.php, который я хочу что бы...

Как определить причину не выполнения скрипта в Cron
Доброго времени суток. Ищу помощи в решении такого вопроса: На сервере есть скрипт, который выполняется через Cron каждые 30...

15
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
20.06.2015, 20:30
А смысл отдельной таблицы для каждого сотрудника?
0
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 26
20.06.2015, 20:56  [ТС]
Dolphin, сама только сейчас задумалась над этим. Я так понимаю можно сделать одну таблицу с колонкой каждого id, и показывать каждому. Я правильно поняла?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.06.2015, 21:57
Цитата Сообщение от step-olga Посмотреть сообщение
Я так понимаю можно сделать одну таблицу с колонкой каждого id
да
Цитата Сообщение от step-olga Посмотреть сообщение
и показывать каждому
в смысле, показывать каждому?
0
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 26
20.06.2015, 22:21  [ТС]
fanatikus, ну я имею виду сделать выборку с условием id
0
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 26
22.06.2015, 15:10  [ТС]
Дабы не создавать новую тему, у меня возник вопрос этого же характера. Сделала я одну таблицу на всех сотрудников. Для проверки даты окончания задания, я делаю выборку из бд по текущей дате, если дата в бд равна текущей дате, то в строке с датой меняется значение на "Не выполнено". Но я так понимаю что после первой проверки выполнение скрипта остановится, как сделать что бы проверялись все даты совпадающие с текущей?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
    
    $date = date('Y-m-d');
    $com = 'Не выполнено';
     
     
     $db = mysql_connect($mysql_server, $mysql_username, $mysql_password);
     mysql_select_db($mysql_database, $db) or die('Failed to select database<br>'.mysql_error());
     $sql = "SELECT * FROM `zadanie` WHERE data = '$date'";
     $result = mysql_query($sql, $db);
      while ($res = mysql_fetch_array($result))
     {
            $id =   $res['id']
            $id_user    = $res['id_user'];
            $nomer = $res['nomer'];
            $data = $res['data'];
            $zadanie = $res['zadanie'];
            $day    = $res['day'];
            $up_data = $res['up_data'];
    }
    
    if($date == $up_data) 
            { 
         $sql = "UPDATE `zadanie` SET `up_data` = $com WHERE `id` = '$id'";
            mysql_query($sql, $db);
            }
?>
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
22.06.2015, 15:17
PHP
1
"UPDATE `zadanie` SET `up_data` = 'Не выполнено' WHERE data = '{$date}'"
0
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 26
22.06.2015, 15:21  [ТС]
Dolphin, я так понимаю весь код который я писала зря?
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
22.06.2015, 15:23
Если нужно только
Цитата Сообщение от step-olga Посмотреть сообщение
дата в бд равна текущей дате, то в строке с датой меняется значение на "Не выполнено"
то да, много лишнего кода
0
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 26
22.06.2015, 15:35  [ТС]
Dolphin, Спасибо вам большое!) Подскажите, пожалуйста, а если мне надо вычесть баллы у пользователя которого не выполнено задание.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
    
    $date = date('Y-m-d');
    $com = 'Не выполнено';
     
     
     $db = mysql_connect($mysql_server, $mysql_username, $mysql_password);
     mysql_select_db($mysql_database, $db) or die('Failed to select database<br>'.mysql_error());
     $sql = "SELECT * FROM `zadanie` WHERE data = '$date'";
     $result = mysql_query($sql, $db);
      while ($res = mysql_fetch_array($result))
     {
            $id =   $res['id']
            $id_user    = $res['id_user'];
            $nomer = $res['nomer'];
            $data = $res['data'];
            $zadanie = $res['zadanie'];
            $day    = $res['day'];
            $up_data = $res['up_data'];
    }
    
    if($date == $up_data) 
            { 
            mysql_select_db($mysql_database, $db) or die('Failed to select database<br>'.mysql_error());
         $sql = "UPDATE `users` SET `bal` = `bal` - 10 WHERE `id` = '$id_user'";
            mysql_query($sql, $db);
         $sql = "UPDATE `zadanie` SET `up_data` = $com WHERE `id` = '$id'";
            mysql_query($sql, $db);
            }
?>
Я надеялась на этот запрос:
PHP
1
2
3
            mysql_select_db($mysql_database, $db) or die('Failed to select database<br>'.mysql_error());
         $sql = "UPDATE `users` SET `bal` = `bal` - 10 WHERE `id` = '$id_user'";
            mysql_query($sql, $db);
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
22.06.2015, 15:38
PHP
1
"UPDATE `zadanie` SET `up_data` = 'Не выполнено', `bal` = `bal` -10 WHERE data = '{$date}'"
0
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 26
22.06.2015, 15:49  [ТС]
Dolphin, Дак список заданий находится в таблице zadanie, а вся информация о пользователях, там же и балы в таблице users.
P.S. Вы извините меня назойливую=)
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
22.06.2015, 15:55
Лучший ответ Сообщение было отмечено step-olga как решение

Решение

А, точно, не досмотрел
PHP
1
2
3
4
"UPDATE `zadanie`, `users`
SET `zadanie`.`up_data` = 'Не выполнено', `users`.`bal` = `users`.`bal` -10
WHERE `zadanie`.`id_user`=`users`.`id`
    AND `zadanie`.`data` = '{$date}'"
Как то так.. Перед испытаниями, сделать копию! )
1
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 26
22.06.2015, 18:15  [ТС]
Dolphin, Спасибо Вам большое! Буду испытывать)))

Добавлено через 2 часа 10 минут
Dolphin, а если еще третья таблица есть?)))
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
22.06.2015, 18:24
Если есть связь между ними, то по аналогии добавить третью
0
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 26
22.06.2015, 18:27  [ТС]
Dolphin, а такой код справится с моей задачей?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
     $date = date('Y-m-d');
     $com = 'Не выполнено';
     
     $db = mysql_connect($mysql_server, $mysql_username, $mysql_password);
     mysql_select_db($mysql_database, $db) or die('Failed to select database<br>'.mysql_error());
     $sql = "SELECT * FROM `zadanie` WHERE data = '$date' and up_data='$date'";
     $result = mysql_query($sql, $db);
      while ($res = mysql_fetch_array($result))
     {
              $sql = "UPDATE `users` SET `bal` = `bal` - 10 WHERE `id` = '{$res['id_user']}'";
              mysql_query($sql, $db);
              $sql = "UPDATE `zadanie` SET `up_data` = '$com' WHERE `id` = '{$res['id']}'";
              mysql_query($sql, $db);
    }
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.06.2015, 18:27
Помогаю со студенческими работами здесь

Запуск скрипта только для CRON и определеного ип-адреса
Здравствуйте! Подскажите как сделать чтоб запуск скрипта можно было осуществлять только с cron и определенного ип адреса

Нужно ли дописывать что-либо в начало скрипта который надо запустить в Cron?
Подскажите подскажите плиз. Нужно ли(и если да то что) дописывать в начало скрипта который надо запустить в Cron.?

Как указывать пути к включаемым файлам (include), при запуске скрипта из cron?
Крон &quot;не понимает&quot; такой код. Задание не выполняется или выполняется с ошибками. //Путь к корневой директории сайта ...

Запрет cron скрипта на выполнение через браузер
Я извиняюсь, за, возможно глупый вопрос, написал людям скрипт, отсылающий письма, поместил в корень сайта, владельцы сайта должны были...

Запуск скрипта только из cron
Здравствуйте! В общем тема вроде заезженная и есть определенные решения но мне они не подходят. Я юзаю MVC ООП с маршрутизацией в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru