Отредактировано для работы с новым обновлением требований ...
Если вы сначала запустите сценарий "active to 0", то у вас будет только одно значение для обновления?
$sql = "UPDATE messages SET active=0 WHERE active=1";
Затем мы можем запустить ваш оригинальный скрипт, чтобы пометить новый идентификатор как активный
$sql = "UPDATE messages SET active=1 WHERE id=".$id."";
РЕДАКТИРОВАТЬ В этом случае мы должны сначала найти идентификатор активной строки
$sql = "SELECT id FROM messages WHERE active=1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$prv = $row["id"];
}}
Затем примените этот идентификатор к sql
$sql = "UPDATE messages SET active=0 WHERE active=".$prv."";
С последующим исходным обновлением
$sql = "UPDATE messages SET active=1 WHERE id=".$id."";