以下のように作成したのですが、削除が機能しません。
以下のスクリプトを修正する場合、どうすればよいかどなたかお知恵を拝借いただけませんでしょうか? よろしくお願いいたします。
<?php
$db = sqlite_open('sqbbs.sqlite');
sqlite_query($db, 'create table sqbbs(
id integer primary key,
t timestamp,
msg text,
del boolean default 0);');
?>
<form action="sqbbs.php" method="post">
<p>メッセージ:<br />
<textarea name="msg" rows="2" cols="30"></textarea><br />
<input type="submit" value="送る" />
<input type="reset" value="クリア" /></p>
</form>
<?php
$db = sqlite_open('sqbbs.sqlite')
or die("<p>データベースに接続できませんでした</p>");
if ($_POST['msg'] != '') {
$t = date("Y-m-d H:i:s");
$msg = sqlite_escape_string($_POST['msg']);
$sql = "insert into sqbbs values(NULL, '$t', '$msg', 0)";
$result = sqlite_query($db, $sql)
or die("<p>書き込みに失敗しました</p>");
}
$sql = "select * from sqbbs where Del = 0 order by id desc limit 20";
$result = sqlite_unbuffered_query($db, $sql)
or die("<p>読み出しに失敗しました</p>");
echo "<table border=\"1\">\n";
echo "<tr>
<th>番号</th>
<th>日時</th>
<th>メッセージ</th>
<th>削除</th>
</tr>\n";
while ($a = sqlite_fetch_array($result, SQLITE_ASSOC)) {
echo "<tr>
<td>", $a['id'], "</td>
<td>", $a['t'], "</td>
<td>", htmlspecialchars($a['msg']), "</td>
<td><form><input type='submit' name='Del' value='削除'></td>
<input type='hidden' name='Del' value='1'></form>
</tr>\n";
}
echo "</table>\n";
header('Location: ./sqbbs.php');
//削除処理#1
if (isset($_POST['Del'])) {
$result = sqlite_query($db, $sql);
$sql = "delete from sqbbs where Del = 1";
$result = sqlite_query($db, $sql)
or die("<p>削除できませんでした</p>");
}else{
print (sqlite_changes($db).'件のレコードを削除しました<br/>');
}
header('Location: ./sqbbs.php');
exit;
sqlite_close($db);
?>
« 最終編集者 jan-ken 日時 2009 年 5 月 17 日(日) 15:19. »