現在の状況
データベースにデータを入れて、HTMLで表示できる所まではできているのですが、
title部分の表示が指定した文字数で表示されず、途中で切れてしまいます。
何故か更新(UPDATE)をしてあげると正しく文字が指定した字数が表示されます。
何か原因はわかりますでしょうか?
宜しくお願い致します。m(_ _)m
HTML
1<!-- 表示用のHTML --> 2<?php foreach($query as $row): ?> 3<tr> 4 <td><?php echo $row['category']; ?></td> 5 <td><a href="###"><?php echo $row['title']; ?></a></td> 6 <td><?php echo mb_substr($row['contents'], 0,33); ?></td> 7 <td><?php echo mb_substr($row['remarks'], 0, 27); ?></td> 8 <td><?php echo $row['history']; ?></td> 9 <td> 10 <button class="copyBtn">コピー</button> 11 <textarea class="copyTxt"><?php echo $row['contents']; ?></textarea> 12 13 <form action="edit.php" method="GET"> 14 <input type="hidden" name="id" value="<?php echo $row['id']; ?>"> 15 <input type="submit" value="編集"> 16 </form> 17 </td> 18</tr> 19 20<?php endforeach; $dsn = null; ?>
PHP
1//新規作成画面 2 3<?php 4 5$var = ['category', 'title', 'contents', 'remarks']; 6 7foreach($var as $row){ 8 ${$row} = filter_input(INPUT_POST, $row, FILTER_SANITIZE_SPECIAL_CHARS); 9} 10 11$history = date_default_timezone_set("Asia/Tokyo"); 12$history = date("Y/m/d H:i"); 13 14include dirname(__FILE__) . '/db.php'; 15 16$query = "INSERT INTO mail(category, title, contents, remarks, history) VALUES(?, ?, ?, ?, ?)"; 17$post = $dsn->prepare($query); 18$data[] = $category; 19$data[] = $title; 20$data[] = $contents; 21$data[] = $remarks; 22$data[] = $history; 23 24$res = $post->execute($data); 25 26$dsn = null; 27header("Location: home.php"); 28 29?>
PHP
1//更新画面用 2 3<?php 4 5include dirname(__FILE__) . '/db.php'; 6 7$id = $_POST['id']; 8$val = ["category", "title", "contents", "remarks"]; 9 10$history = date_default_timezone_set("Asia/Tokyo"); 11$history = date("Y/m/d H:i"); 12 13foreach($val as $res){ 14 ${$res} = filter_input(INPUT_POST, $res); 15} 16 17$dsn->query("UPDATE mail SET category='$category' WHERE id='$id'"); 18$dsn->query("UPDATE mail SET title='$title' WHERE id='$id'"); 19$dsn->query("UPDATE mail SET contents='$contents' WHERE id='$id'"); 20$dsn->query("UPDATE mail SET remarks='$remarks' WHERE id='$id'"); 21$dsn->query("UPDATE mail SET history='$history' WHERE id='$id'"); 22 23header("Location: home.php"); 24?>
上記のテスト2の状態が正しい表示になります。(新規入稿をした後一度そのまま変更なしで更新(UPDATE)をするとこのような表示になります。
現在は下のテストのような状態で文字制限がうまく効いてくれていない状態です。
回答1件
あなたの回答
tips
プレビュー