多分1年ぐらいかかりそう;
インデントは自分で揃えてくだしあ。
1~3時間
削除ページ
☆以下共通☆
comment_idだけど、ID取りにいってるからねー。この掲示板ではcomment_idとidは一緒だよ。
*index.php*
<?php } ?> <a href="./delete.php?comment_id=<?php echo $row1["id"]?>">削除</a>*delete.php*
<?php while($row = mysql_fetch_array($result)) { ?> <div style="border:1px solid #ddd;margin-bottom:10px;padding:5px;"> <?php if (($row["url"]=="") or ($row["url"]==null)) { ?> <?php echo $row["nickname"] ?> さんの投稿 <br /> <?php }else { ?> <a href="<?php echo $row["url"]?>"><?php echo $row["nickname"]?></a> さんの投稿 <?php } ?> <?php if (($row["mail1"] != "" ) || ($row["mail1"] != null )) { ?> <a href="<?php echo $row["mail1"]?>">メール</a> <?php } ?> <br /> <?php echo $row["content"] ?> <br> <?php if (($row["photo"]!="") or ($row["photo"]!=null)) { ?> <img src="./img/<?php echo $row["photo"]?>" alt ="<?php echo $row["photo"]?>" width=200><br /> <?php } ?> <?php if (($row["photo2"]!="") or ($row["photo2"]!=null)) { ?> <img src="./img2/<?php echo $row["photo2"]?>" alt ="<?php echo $row["photo2"]?>" width=200><br /> <?php } ?> <?php echo $row["created_at"] ?> </div> <?php } //while文終わり ?> 本当に削除してもいいですか? <br><br> <form action="delete_submit.php" method="post"> <input type="submit" name="delete" value=" 削除する "> <input type="hidden" name="comment_id" value="<?php echo $comment_id;?>"> </form>
*delete_submit*
<pre class="prettyprint"> //comment_id(コメントテーブルの主キー)を取りに行く $comment_id = $_POST["comment_id"]; //mysql に接続する $db = mysql_connect('localhost','yamazaki','2100'); // データベースを選択する $sdb = mysql_select_db('study'); // 親子一緒にDELETE文を実行 $sql = "delete FROM comment where id = '".$comment_id."'"; $result = mysql_query($sql); $sql = "delete FROM reply where id = '".$comment_id."'"; $result = mysql_query($sql); </pre> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>SHONAN BBS</title> </head> <body> <h1>SHONAN BBS</h1> 削除しました。<br /> <a href="index.php"> 戻る </a>
・4時間目
物理削除と論理削除
物理削除:完全に削除。例)Delete文
論理削除:削除自体は行わないが、フラグなどで削除したことにし、表示上見えないようにする。
論理削除に必要なもの
DB側:テーブル・フラグ
ソースコード:参照(select)・削除つか判定フラグ
◆まずはテーブル作成
alter table comment add delete_fig tinyint(1) default 0;
alter table reply add delete_fig tinyint(1) default 0;
MySQLではカラム単位でtrue/falseのbool型が使えない。0か1の判断しかない。
なのでtinyint(1)で0~9までの数字で判断する処理を行う。
◆実際にフラグつけてみる。
update comment set delete_flg = 1;
index.phpにもフラグつけてみる。
// クエリを送信する
$sql = "SELECT * FROM comment where delete_flg = 0 order by created_at desc";
F5更新するとデータが見えなくなっている。これが論理削除の基本処理。
update comment set delete_flg = 0;で戻すよ。
ここから実装。
delete_submit.php以外にdelete_flg = 0;フラグ追加。
submit(画像のところ)
$sql = "select id from comment where delete_flg = 0 order by id desc limit 1";
それ以外
$sql = "SELECT * FROM reply where delete_flg = 0 and id = '".$comment_id."'";
明日続きとパスワード認証で削除。
来週はエラーチェック。
さらに今後は実習で仕様書見て作ってみよう。(登録+編集+削除+リスト表示)
おまけっていうかネタバレになってもたけど……。
・メールアドレス正規表現やってみた。
//メールアドレス正規表現 if ($mail1_mail1 !=null || $mail1_mail1 !="") { if (! ereg ("[a-zA-Z0-9_.\-]+@[a-zA-Z0-9._\-]+",$mail1_mail1)){ $mail1_error_yn = 'y'; $error_yn = "y"; } } <?php if($mail1_error_yn == 'y') {?> メールアドレスが正しくありません <br/> <?php }?>
0 件のコメント:
コメントを投稿