質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

1回答

705閲覧

簡易掲示板で投稿を表示させたい

Millennium

総合スコア5

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2020/04/09 03:41

前提・実現したいこと

PHP5.4とMySQLで簡易的な掲示板を作っており、投稿を表示させたいです。

発生している問題・エラーメッセージ

フォームで入力された情報の一覧を下に表示させたいのですが、表示できません。データベースを確認したところ、入力した情報はちゃんとセットされてました。おそらく、データを取得するSQL文か表示させるプログラムに誤りがあると思うのですが、解決できません。

該当のソースコード

php

1//bbs.php 2<?php 3ini_set('display_errors', true); 4 5// 全てのエラーを表示する。 6error_reporting(E_ALL); 7 8// DB接続 9require('dbconnection.php'); 10 11 12$errors=array(); 13 14//POST処理 15if($_SERVER['REQUEST_METHOD']==='POST'){ 16 $name=null; 17 if(!isset($_POST['name'])||!strlen($_POST['name'])){ 18 $errors['name']='名前を入力してください'; 19}else if(strlen($_POST['name'])>40){ 20 $errors['name']='名前は40文字以内で入力してください'; 21}else{ 22 $name=$_POST['name']; 23} 24 25 $comment=null; 26 if(!isset($_POST['comment'])||!strlen($_POST['comment'])){ 27 $errors['comment']='メッセージを入力してください'; 28 }else if(strlen($_POST['comment'])>200){ 29 $errors['comment']='ひとことは200文字以内で入力してくだい'; 30 }else{ 31 $comment=$_POST['comment']; 32 } 33 34 35 //エラーがなければ保存 36 if(count($errors)===0){ 37 $stmt=$db->prepare("INSERT INTO post SET name=?,comment=?,created_at=NOW()"); 38 $stmt->execute(array( 39 $_POST['name'], 40 $_POST['comment'] 41 )); 42 43 $db=null; 44 header('Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 45 exit(); 46 } 47} 48 49 //投稿された内容を取得するSQLを作成して結果を取得 50 $sql="SELECT * FROM post ODER BY created_at DESC"; 51 $result=$db->query($sql); 52 53 //取得した結果を$postsに格納 54 $posts=array(); 55 if($result !==false){ 56 while($post=$result->fetch()){ 57 $posts[]=$post; 58 } 59 } 60 61 // 取得結果を解放して接続を閉じる 62 $result=null; 63 $db=null; 64 65include 'views/bbs_view.php'; 66?>

php

1//views/bbs_view.php 2<!DOCTYPE html> 3<html lanhg="ja"> 4 <head> 5 <meta charaset="utf-8"> 6 <meta name="viewport" content="width=device-width,initial-scale=1"> 7 <title>Board</title> 8 <meta name="description" content=""> 9 <link rel="stylesheet" href="https://unpkg.com/ress/dist/ress.min.css"> 10 <link rel="stylesheet" href="css/style.css"> 11 </head> 12 13 <body> 14 <h1 class="maintitle">Board</h1> 15 16 <form action="bbs.php" method="post"> 17 <?php if(count($errors)>0): ?> 18 <ul class="error_list"> 19 <?php foreach($errors as $error):?> 20 <li> 21 <?php echo htmlspecialchars($error,ENT_QUOTES,'UTF-8')?> 22 </li> 23 <?php endforeach;?> 24 </ul> 25 <?php endif; ?> 26 27 <div> 28 <label for="name">名前</label> 29 <input type="text" name="name" id="name"> 30 </div> 31 32 <div> 33 <label for="comment">メッセージ</label> 34 <textarea name="comment" id="comment" ></textarea> 35 </div> 36 37 <input type="submit" name="submit" value="送信"> 38 39 </form> 40 41 42 <?php if(count($posts)>0): ?> 43 <ul> 44 <?php foreach($posts as $post): ?> 45 <li> 46 <?php echo htmlspecialchars($post['name'],ENT_QUOTES,'UTF-8');?>: 47 <?php echo htmlspecialchars($post['comment'],ENT_QUOTES,'UTF-8');?> 48 -<?php echo htmlspecialchars($post['created_at'],ENT_QUOTES,'UTF-8');?> 49 </li> 50 <?php endforeach; ?> 51 </ul> 52 <?php endif;?> 53 54 </body> 55</html> 56

php

1//dbconnection.php 2<?php 3try { 4 $db = new PDO('mysql:dbname=bbs;host=127.0.0.1', 'root', 'password'); 5} catch (PDOException $e) { 6 echo 'DB接続エラー: ' . $e->getMessage(); 7} 8?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

bbs.php の下記において

//投稿された内容を取得するSQLを作成して結果を取得 $sql="SELECT * FROM post ODER BY created_at DESC";

ODER -> ORDER ですね。

投稿2020/04/09 03:48

MAKOTO_MOBY

総合スコア193

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Millennium

2020/04/09 03:54

うまく表示されました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問