Как сделать чтобы while останавливался на 1 секунду?

есть вот этот код :
<?php
include 'db/db.php';
$sql = mysqli_query($link, "SELECT * FROM `users` WHERE `id` = 1");
$sqll = mysqli_fetch_array($sql);
$data = $_POST;
$cos = $sqll['money'];
$ran = mt_rand(1,2);
$timer = 10;
if ($data['sum'] <= $cos) {
    if (isset($data['put'])) {
            $cos -= $data['sum'];
            mysqli_query($link, "UPDATE `users` SET `money` = '$cos' WHERE `id` = 1");
            while ($timer = 0) {
                echo $timer;
                sleep(60);
                $timer -= 1;
            }
        }    
}


?>


надо сделать чтобы while останавливался на 1 секунду и потом продолжал, и после также останавливался на 1 сек и продолжал и пока $timer не будет равен 0
  • Вопрос задан
  • 1743 просмотра
Пригласить эксперта
Ответы на вопрос 3
@AlexBergal
while ($timer = 0) {

Это не условие, а присвоение.
Код работает совсем не так как вы сейчас ожидаете.

Добавьте недостающие !=
Ответ написан
Комментировать
@Maxim_Q
ну у вас там написано sleep(60); это остановка на 60 сек. Если нужно 1 сек это 1. значит меняй на: sleep(1); это и есть 1 секундная пауза внутри while. или нужно что-то другое? и зачем вообще городить огород из while когда можно просто указать длину паузы?
Ответ написан
@Picknice
Веб-программист (FULL STACK)
Непонятно зачем паузу делать? Если хотите допустим заблокировать доступ к команде put, то храните в таблице время последнего put и и перед выполнением проверьте прошло ли сколько то секунд с последнего put.

Если же вам нужно каждую секунду отнимать от баланса пользователя, то нужно внутри while получать с бд инфу каждую секунду, делать вычисления и обратно + судя по всему нужно ещё хранить у пользователя счётчик и проверять, если он не равен нулю, то вычитать 1.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы