プログラムから現在アクティブなユーザーをすべて引き出すWebサイトがあります。管理パネルでは、「キルスイッチ」が必要です。
ボタンSQLテーブル内のすべてのユーザーを削除するボタン
これは、ユーザーをSQLテーブル 'online'から引き出し、phpはそれを配列にします。
<?php
$stack = array();
for($id = 1; $id <= 20; $id++)
{
$db = Database::getInstance();
$stmt = $db->prepare('SELECT * FROM online WHERE id = :id LIMIT 1');
$stmt->execute([':id' => $id]);
$user = $stmt->fetchObject('User');
array_push($stack, $user);
}
?>
これはテーブルもループとID [1; 20]を用いて、すべてのオンラインユーザをとります。 次に、$ userを配列$ stackにスタックします。
<table>
<thead><tr><th colspan="4"><span>Online right now</span></th></tr><tr><th colspan="4"> </th></tr><tr><th><span>E-Mail</span></th><th><span>Telefone</span></th><th><span>Unit ID</span></th></tr></thead>
<tbody>
<?php foreach ($stack as $num) : ?>
<?php if($num != null) : ?>
<tr>
<th><?=htmlspecialchars($num->email) ?></th>
<th><?=htmlspecialchars($num->telefone) ?></th>
<th><?=htmlspecialchars($num->unitid) ?></th>
<th><form action="thisPage.php" method="post"><input type="submit" name="killClick" value="Kill"/></form></th>
</tr>
<?php endif ?>
<?php endforeach ?>
</tbody>
</table>
これは単にテーブルの行に各$ユーザーまたは$ num個を割り当てる$スタックものの行く、行は、ユーザーの電子メール、telefone番号、UNITIDとボタンが含まれています。
<?php
if($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['killClick']))
{
$passedId = $num->id;
try
{
$db = Database::getInstance();
$stmt = $db->prepare('DELETE FROM online WHERE id = :id LIMIT 1');
$stmt->execute([':id' => $passedId]);
}
catch (PDOException $exception)
{
error_log($exception->getMessage());
return false;
}
}
?>
上記PHPは、同一ページ上の、およびforeachループの外側に配置されています。
現在、私はボタンを押すと、テーブルのすべてのユーザーを「オンライン」で削除します...なぜですか?そして、私がクリックしているユーザーだけを削除するようにするにはどうしたらいいですか?
使用することができところで
フォームが投稿されたときに渡されるようにその特定のエントリのID – RamRaider
ああええ、それを考えなかった!それを試みる! – TheGejr