phpで掲示板を作成しました。
フォームでmysqlのテーブルにデータを送信し、その内容を取ってきて一度配列に入れて、100件づつ、日付順に表示する、というものです。
しかし、テーブルのデータの1行目だけが表示されません。
一体原因は何なんでしょうか。ご教授よろしくお願いいたします。
php
1//index.php 2 3$dsn = 'mysql:host=ホスト名;dbname=データベース名;charset=utf8'; 4$user = 'ユーザー名'; 5$password = 'パスワード'; 6 7try { 8$pdo = new PDO($dsn, $user, $password); 9$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); 10 11mb_language("uni"); 12mb_internal_encoding("utf-8"); //内部文字コードを変更 13mb_http_input("auto"); 14mb_http_output("utf-8"); 15 16$userData = null; 17 18$page = empty($_GET["page"])? 1:$_GET["page"];//ページ番号 19$pagemax = 100;//1ページあたりの表示数 20 21$start = ($page == 1)? 0 : ($page-1) * $pagemax; 22 23//datasテーブルから日付の降順でデータを取得 24$sql = "select * from bbs_data ORDER BY user_id DESC limit ".$start.",".$pagemax; 25 26$result = $pdo->query($sql); 27$count = $result->fetchColumn(); 28$count = intval($count, 10); 29 30$limit = ceil($count/$pagemax);//最大ページ数 31 32while ($row = $result->fetchObject()){ 33 $userData[]=array( 34 'id' => $row->user_id 35 ,'date' => $row->user_date 36 ,'name' => $row->user_name 37 ,'title' => $row->user_title 38 ,'message' => $row->user_mes 39 ); 40} 41 42require 'index_temp.php'; 43exit; 44} 45catch (PDOException $e) 46{ 47 //例外処理 48 die('Error:' . $e->getMessage()); 49}
php
1//index_temp.php 2<!DOCTYPE html> 3<html lang="ja"> 4<head> 5</head> 6 <body> 7 <article id="bbslistbox"> 8 <section id="bbslists"> 9 <?php if (isset($userData)){ ?> 10 <?php foreach ($userData as $postdata) { ?> 11 <dl class="bbsdata"> 12 <dt class="head"> 13 <span class="title"><?php echo htmlspecialchars($postdata['title']) ?></span> 14 <span class="name">Name:<?php echo htmlspecialchars($postdata['name']) ?></span> 15 </dt> 16 <dd class="message"> 17 <?php echo htmlspecialchars(nl2br($postdata['message'])) ?> 18 </dd> 19 <dd class="detail"> 20 <span><?php echo $postdata['date'] ?></span><span>ID:<?php echo $postdata['id'] ?></span> 21 </dd> 22 </dl> 23 <?php } ?> 24 <?php } ?> 25 </section> 26 </article> 27 </body> 28</html>
まだ質問が「受付中」になっていますが、いったん「解決済」にされてはいかがでしょうか。

回答1件
あなたの回答
tips
プレビュー