前提・実現したいこと
php初心者です。phpで簡単な掲示板を作っています。削除機能を実装しています。投稿番号を削除した投稿番号をとばし、最後の投稿の投稿番号+1を新たな投稿番号にしたいです
こちらでも同じような質問がたくさんあったのでほぼすべて見てみましたが、理解することが出来ませんでした。
言葉が足らず申し訳ありませんがご回答のほどよろしくお願いします
発生している問題・エラーメッセージ
現在これらの投稿がされているとします
1 鈴木 一郎 コメント
2 田中 次郎 コメント
3 棚 太郎 できたよ
これから投稿番号2番を削除すると
1 鈴木 一郎 コメント
3 棚 太郎 できたよ
このように表示されます
その後新たに投稿すると
1 鈴木 一郎 コメント
3 棚 太郎 できたよ
3 田中 次郎 コメント
このようになってしまいます
これを
1
3
4
としたいです
エラーメッセージ
該当のソースコード
php
1コードif(!empty($_POST['deleten'])){ 2 3 $delete=$_POST['deleten']; 4 5 $delCon = file($filename); 6 7 $fp = fopen("mission_3-3.txt" , "w"); 8 9 for ($j = 0; $j < count($delCon); $j++) { 10 11 $delDate = explode("<>", $delCon[$j]); 12 13 14 if ($delDate[0] != $delete) { 15 16 fwrite($fp, $delCon[$j]); 17 18 } 19 else { 20 fwrite($fp, ""); 21 } 22 } 23 fclose($fp); 24 25 echo $delete."を削除しました<br>"; 26 } 27 28 else{ 29 30 echo "削除したい番号記入してください<br>"; 31 }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
全体のも載せます
php
1コード<html> 2<head> 3 <meta charset="utf-8"> 4 <title>3-3</title> 5</head> 6 7<form method="POST" action="mission_3-3.php"> 8 9<p><label>名前:</label><input type="name" name="name" 10 placeholder="苗字 名前"></p> 11 12<p><label>コメント:</label><input type="text" 13 name="comment"placeholder="コメント"> 14<input type="submit" value="送信する"></p> 15 16<p><label>削除対象番号:</label><input type = "text" name = "deleten"> 17<input type="submit" name="delete" value="削除"></p> 18 19 20 21</form> 22</html> 23 24<?php 25 26$filename="mission_3-3.txt"; 27 28 29 30if(!empty($_POST['comment'])&&($_POST['name'])){ 31 $comment=$_POST['comment']; 32 $name=$_POST['name']; 33 echo "ご記入ありがとうございます<br>"; 34 35 36if(file_exists($filename)){ 37 $num=count(file($filename))+1; 38 } 39 else{$num=1; 40 } 41 42 $date=date("Y,F j, G:i:s, a"); //日付データ 43 44 $comment=$_POST['comment'];//入力フォームからのデータ 45 46 $name=$_POST['name']; //入力フォームからのデータ 47 48 49 $words =$num."<>". $name."<>".$comment."<>".$date; 50 51 $fp = fopen($filename,"a"); 52 53 fwrite( $fp , $words. "\n" ); 54 55 fclose($fp); 56 57 } 58 59 else{ 60 61 echo "入力してください<br>"; 62} 63//3-3 64 65if(!empty($_POST['deleten'])){ 66 67 $delete=$_POST['deleten']; 68 69 $delCon = file($filename); 70 71 $fp = fopen("mission_3-3.txt" , "w"); 72 73 for ($j = 0; $j < count($delCon); $j++) { 74 75 $delDate = explode("<>", $delCon[$j]); 76 77 78 if ($delDate[0] != $delete) { 79 80 fwrite($fp, $delCon[$j]); 81 82 } 83 else { 84 fwrite($fp, ""); 85 } 86 } 87 fclose($fp); 88 89 echo $delete."を削除しました<br>"; 90 } 91 92 else{ 93 94 echo "削除したい番号記入してください<br>"; 95 } 96 97 98 99 100echo "<strong>コメント一覧<br></strong>"; 101 102 103if(file_exists($filename)){ 104 105 $lines = file($filename); 106 107 foreach($lines as $line){ 108 109 $xlines=explode("<>",$line); 110 111 foreach($xlines as $value){ 112 113 echo $value." "; 114 } 115 echo"<br>"; 116} 117} 118 119?>