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

Я использую PHP и mysqli, чтобы выбрать 5 случайных строк, хотя это работает очень хорошо. Я также хотел бы обновить статус выбранных строк до 1 одновременно с получением этих строк.Я видел много примеров подобного вопроса, но не мог найти тот, который мог бы использовать.Я ценю любую помощь.

$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()) {
    echo "<h1>$Name</h1>";
    echo "<p>$Age</p>";
}

1 Ответ

1 голос
/ 08 июля 2019

Вы можете запустить отдельный запрос, в котором вы обновляете информацию на основе выбранных вами идентификаторов. Поместите все идентификаторы в массив, а затем используйте подготовленный оператор для динамического построения запроса.

$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 "<h1>$Name</h1>";
    echo "<p>$Age</p>";
}
$query->close();

// Create query dynamically
$stmt = $mysqli->prepare("UPDATE table SET status=1 WHERE id IN (".implode(", ", array_fill(0, count($ids), "?")).")");
// Bind dynamic values 
$stmt->bind_param(str_repeat("i", count($ids)), ...$ids);
$stmt->execute();
$stmt->close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...