Как обновить обновленные строки? - PullRequest
0 голосов
/ 10 июля 2019

Когда index.php загружается, он повторяет результат оператора select и одновременно обновляет статус выбранных строк до 1. Теперь мой вопрос: как вернуть эти строки в состояние 0 после того, как пользователь покидает страницу?

index.php

    include("con.php");

    $ids = [];
    $query = $mysqli->prepare("SELECT id, name, age FROM table WHERE status=0 ORDER BY RAND() LIMIT 5");
    $query->execute();
    $query->bind_result($id, $name, $age);

    while ($query->fetch()) {
        $ids[] = $id;
        echo    "<p>$name</p>";
        echo    "<p>$age </p>";

    }
    $query->close();

    $query2 = $mysqli->prepare("UPDATE table SET status=1 WHERE id IN (".implode(", ", array_fill(0, count($ids), "?")).")");
    $query2->bind_param(str_repeat("i", count($ids)), ...$ids);
    $query2->execute();
    $query2->close();


    ?>

<script>
$( ".link" ).click(function() {
    $.ajax({
        url: 'reset.php'
    });
}); 
</script>

Я пытался использовать ajax для вызова reset.php, когда пользователь нажимает на ссылку.reset.php обновляет все статусы до 0, но мне нужно обновить ровно 5 строк, как указано выше.

reset.php

  <?php
    include('index.php');

    $stmt = $mysqli->prepare("UPDATE table SET Status=0");
    $stmt->execute();
    $stmt->close();
   ?>

1 Ответ

0 голосов
/ 10 июля 2019

Вместо использования функции mysql RAND() вы можете сгенерировать пять идентификаторов с помощью функции php mt_rand, сохранить их в переменной и использовать в запросе.

Таким образом, вы точно знаете, что строки были обновлены пользователем, а затем, когда пользователь уходит, вы можете обновить точные пять строк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...