前回も質問させていただきましたが、解決できなかったため再度質問させて頂きました。
(入力画面.php)→(確認画面.php)→(一覧画面.php)という流れで掲示板を作りました。
入力データはDBへ格納し一覧画面でDBに登録された情報を表示しています。
■質問1
入力画面にて名前を未記入で送信した場合、一覧画面では”名無し”と表記させたいのですが、
その方法が分かりません。
(そもそも、DBへ名無しと格納して呼び出すのか?空の場合名無しと表記しているだけなのか?)
入力データはSESSIONで格納しています。
■質問2
preg_replaceを利用して日付の表示を
2015-05-01 15:00:00(デフォルト) ⇒ 2015/05/01 15:00:00に変更したいのですが
その方法が分かりません。
以下、一覧画面
lang
1<?php 2//クラスファイルの読み込み 3//SESSION開始 4//フォームから格納されたかを判定 5if(isset($_SESSION['name']) && isset($_SESSION['message'])) 6{ 7 // DBへ接続 8 //*** メッセージをデータベースへ格納する ***// 9 //実行するクエリを変数に入れる 10 $sql = "INSERT INTO onebord(name,message) VALUES ('" . $_SESSION['name'] . "','" . $_SESSION['message']."')"; 11 12 //クエリを実行して、フォームから入力されたデータをデータベースに挿入 13 $result_reg = mysql_query($sql); 14} 15 16//データの取得 17$sql = 'SELECT * FROM onebord'; 18$bbs_date = mysql_query($sql); 19while ($row = mysql_fetch_assoc($bbs_date)) 20{ 21 $bbs[] = $row; 22} 23$patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/','/^\s*{(\w+)}\s*=/'); 24$replace = array ('\3/\4/\1\2', '$\1 ='); 25$name = $_SESSION['name']; 26?> 27<html> 28</head> 29<body> 30<table> 31 <tr> 32 <th>日付</th> 33 <th>名前</th> 34 <th>メッセージ</th> 35 </tr> 36<?php foreach ($bbs as $bbs) 37{ 38?> 39 <tr> 40 <td><?php echo preg_replace($patterns, $replace, '$data'); 41 ?></td> 42 <td><?php 43 if(!$name) 44 { 45 $name = '名無しさん'; 46 } 47 else 48 { 49 echo htmlspecialchars($bbs['name']); 50 } 51 ?></td> 52 <td><?php echo htmlspecialchars($bbs['message']); ?></td> 53 </tr> 54<?php 55} 56?> 57</table></body></html>
よろしくお願いいたします
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/20 07:32