@step-olga

Правильно ли я написала скрипт обработки сравнение дат с последующей обработкой?

Подскажите, пожалуйста, есть бд с списком сотрудников, есть таблица заданием и датой до которой это задание нужно выполнить. Если задание не выполнено к дате, в поле меняется значение на "Не выполнено", а в другой таблице у этого сотрудника снимаются баллы. Что я смогла написать: сделала выбору бд по дате, если дата равна текущей, делаю запрос в бд. Скрипт будет срабатывать по крону. Но как сделать чтоб скрипт повторялся, пока не проверит все задания. Посмотрите, пожалуйста, код, может найдется более простое решение?

<?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);
            }
?>
  • Вопрос задан
  • 413 просмотров
Решения вопроса 2
DevMan
@DevMan
поместить проверку внутрь цикла (то есть в while).
Ответ написан
если я вас правильно понял то как-то так:
<?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);
    }
?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы