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

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

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

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

318閲覧

テキストファイル保存からMySQLのテーブル連結に変更する方法。

meronnnnnnnn

総合スコア13

MySQL

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2018/09/25 14:42

編集2018/09/25 14:51

phpで作ったファイル保存式の掲示板をデータベース管理の掲示板に変更したい。

PHPで作ったファイル保存式の掲示板をデータベース管理の掲示板に作り変えています。
様々な媒体で調べつつ見よう見まねで作ってみましたが、動作しません。
php2より間違っている、または問題となってる箇所を指摘、アドバイスしていただけるとありがたいです。
php1が元々作っていたファイル保存式の掲示板のコードで、
php2が今回見よう見まねで書いたデータベース管理の掲示板のコードです。

php1

1<?php 2header('Content-Type: text/html; charset=UTF-8'); 3?> 4 5<?php 6$filename='2-5.txt'; 7$passfile='2-5_pass.txt'; 8 9//編集選択 10if(!empty($_POST["password3"])) { 11 $password3=$_POST["password3"]; 12 $pass3=file($passfile); 13 foreach($pass3 as $word3) { 14 $PASS3=explode('<>', trim($word3)); 15 $id=$PASS3[1]; 16 if( ($id==$password3)&&(!empty($_POST["editing"])) ) { 17 $editing=$_POST["editing"]; 18 $editors=file($filename); 19 foreach($editors as $editor) { 20 $EDITOR=explode('<>', $editor); 21 $id=$EDITOR[0]; 22 if($id==$editing) { 23 $ID=current(array_slice($EDITOR, 0, 1)); 24 $NAME=current(array_slice($EDITOR, 1, 1)); 25 $COMMENT=current(array_slice($EDITOR, 2, 1)); 26 } 27 } 28 } 29 } 30} 31 32//編集実行 33if( (!empty($_POST["edit"]))&&(empty($_POST["password1"])) ) { 34 $edit=$_POST["edit"]; 35 $Editors=file($filename); 36 $fp=fopen($filename, 'w'); 37 foreach($Editors as $Editor) { 38 $EDIT=explode('<>', $Editor); 39 $NO=current(array_slice($EDIT, 0, 1)); 40 if($NO==$edit) { 41 $name=$_POST["name"]; 42 $comment=$_POST["comment"]; 43 $date=date('Y/m/d H:i'); 44 fwrite($fp, $edit.'<>'.$name.'<>'.$comment.'<>'.$date."\n"); 45 } else { 46 fwrite($fp, $Editor); 47 } 48 } 49 fclose($fp); 50} 51?> 52 53<!DOCTYPE html> 54<html lang="ja"> 55<head> 56 <meta charset="UTF-8" /> 57 <title>H2O</title> 58</head> 59<body> 60 <form method="POST" action=" "> 61 <p> 62<!--投稿--> 63 <input type="text" name="name" placeholder="名前" value="<?php echo $NAME ?>"> <br /> 64 <input type="text" name="comment" placeholder="コメント" value="<?php echo $COMMENT ?>"> <br /> 65 66<!--編集実行--> 67 <input type="hidden" name="edit" value="<?php echo $ID ?>"> <br /> 68 69<!--パスワード欄--> 70 <input type="text" name="password1" placeholder="パスワード"> 71 <input type="submit" value="送信"> <br /> 72 <br /> 73 74<!--削除--> 75 <input type="text" name="delete" placeholder="削除対象番号"> <br /> 76 <input type="text" name="password2" placeholder="パスワード"> 77 <input type="submit" value="削除"> <br /> 78 <br /> 79 80<!--編集選択--> 81 <input type="text" name="editing" placeholder="編集対象番号"> <br /> 82 <input type="text" name="password3" placeholder="パスワード"> 83 <input type="submit" value="編集"> <br /> 84 </p> 85</form> 86</body> 87</html> 88 89<?php 90//変数に代入 91$filename='2-5.txt'; 92$passfile='2-5_pass.txt'; 93 94//新規投稿 95if( (!empty($_POST["name"])&&($_POST["comment"])&&($_POST["password1"])) && (empty($_POST["edit"])) ) { 96 if(empty($filename)) { 97 $name=$_POST["name"]; 98 $comment=$_POST["comment"]; 99 $number=count(file($filename)); 100 $num=$number++; 101 $date=date('Y/m/d H:i'); 102 $post=$num.'<>'.$name.'<>'.$comment.'<>'.$date."\n"; 103 file_put_contents($filename, $post, FILE_APPEND); 104 $password1=$_POST["password1"]; 105 file_put_contents($passfile, $num.'<>'.$password1."\n", FILE_APPEND); 106 } else { 107 $name=$_POST["name"]; 108 $comment=$_POST["comment"]; 109 $date=date('Y/m/d H:i'); 110 $lines=file($filename); 111 $number=0; 112 foreach($lines as $line) { 113 $array=explode('<>', $line); 114 $id=$array[0]; 115 } 116 $num=$id+1; 117 $post=$num.'<>'.$name.'<>'.$comment.'<>'.$date."\n"; 118 file_put_contents($filename,$post, FILE_APPEND); 119 $password1=$_POST["password1"]; 120 file_put_contents($passfile, $num.'<>'.$password1."\n", FILE_APPEND); 121 } 122} 123 124//削除 125if(!empty($_POST["password2"])) { 126 $password2=$_POST["password2"]; 127 $pass2=file($passfile); 128 $fp2=fopen($passfile, 'r+'); 129 foreach($pass2 as $word2) { 130 $PASS2=explode('<>', trim($word2)); 131 $id=$PASS2[1]; 132 if( ($id==$password2)&&(!empty($_POST["delete"])) ) { 133 $delete=$_POST["delete"]; 134 $lines=file($filename); 135 $fp=fopen($filename, 'w'); 136 foreach($lines as $line) { 137 $LINE=explode('<>', $line); 138 $no=$LINE[0]; 139 if($no!=$delete) { 140 fwrite($fp, $line); 141 } 142 } 143 fclose($fp); 144 } 145 } 146 fclose($fp2); 147} 148 149$contents=file($filename); 150foreach($contents as $content) { 151 $Ndata=explode('<>', $content); 152 $Ydata=implode(" ", $Ndata); 153 print_r($Ydata); 154 echo "<br />"; 155} 156?>

php2

1<?php 2//接続 3$dsn = 'mysql:dbname=??_???_????_????_???;host=localhost'; 4$user = '??-???.????-????'; 5$password = '????????'; 6$pdo = new PDO($dsn,$user,$password); 7 8//テーブル作成 9$sql = "CREATE TABLE H2O" 10." (" 11. "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY," 12. "name char(32)," 13. "comment TEXT" 14.");"; 15$stmt = $pdo->query($sql); 16 17//入力 18if( (!empty($_POST["name"])&&($_POST["comment"])&&($_POST["password1"])) && (empty($_POST["edit"])) ) { 19 $sql = $pdo -> prepare("INSERT INTO H2O (name, comment, password1) VALUES (:name, :comment :password1)"); 20 $sql -> bindParam(':name', $name, PDO::PARAM_STR); 21 $sql -> bindParam(':comment', $comment, PDO::PARAM_STR); 22 $sql -> bindParam(':password1', $password1, PDO::PARAM_STR); 23 $name = $_POST["name"]; 24 $comment = $_POST["comment"]; 25 $password1 = $_POST["password1"]; 26 $sql -> execute(); 27} 28 29//編集選択 30if(!empty($_POST["password2"])) { 31 $password2 = $_POST["password2"]; 32 $sql = 'SELECT * FROM H2O'; 33 $results = $pdo -> query($sql); 34 foreach ($results as $row) { 35 $id = $row['password1']; 36 if( ($id == $password2) && (!empty($_POST["editing"])) ) { 37 $editing=$_POST["editing"]; 38 foreach ($results as $row) { 39 $no = $row['id']; 40 if($no == $editing) { 41 $ID = $row['id']; 42 $NAME = $row['name']; 43 $COMMENT = $row['comment']; 44 } 45 } 46 } 47 } 48} 49 50//削除 51if(!empty($_POST["password3"])) { 52 $password3 = $_POST["password3"]; 53 $sql = 'SELECT * FROM H2O'; 54 $results = $pdo -> query($sql); 55 foreach ($results as $row) { 56 $id = $row['password1']; 57 if( ($id == $password3) && (!empty($_POST["delete"])) ) { 58 $delete = $_POST["delete"]; 59 foreach ($results as $row) { 60 $no = $row['id']; 61 if($no != $delete) { 62 $sql = "delete from H2O where id=$no"; 63 $result = $pdo->query($sql); 64 } 65 } 66 } 67 } 68} 69?> 70 71<!DOCTYPE html> 72<html lang="ja"> 73<head> 74 <meta charset="UTF-8" /> 75 <title>H2O</title> 76</head> 77<body> 78 <form method="POST" action=" "> 79 <p> 80<!--投稿--> 81 <input type="text" name="name" placeholder="名前" value="<?php echo $NAME ?>"> <br /> 82 <input type="text" name="comment" placeholder="コメント" value="<?php echo $COMMENT ?>"> <br /> 83 84<!--編集実行--> 85 <input type="hidden" name="edit" value="<?php echo $ID ?>"> <br /> 86 87<!--パスワード欄--> 88 <input type="text" name="password1" placeholder="パスワード"> 89 <input type="submit" value="投稿"> <br /> 90 <br /> 91 92<!--編集選択--> 93 <input type="text" name="editing" placeholder="編集対象番号"> <br /> 94 <input type="text" name="password2" placeholder="パスワード"> 95 <input type="submit" value="編集"> <br /> 96 <br /> 97 98 <!--削除--> 99 <input type="text" name="delete" placeholder="削除対象番号"> <br /> 100 <input type="text" name="password3" placeholder="パスワード"> 101 <input type="submit" value="削除"> <br /> 102 </p> 103</form> 104 105<?php 106//入力確認 データ検索? 107$sql = 'SELECT * FROM H2O'; 108$results = $pdo -> query($sql); 109foreach ($results as $row) { 110 echo $row['id'].','; 111 echo $row['name'].','; 112 echo $row['comment'].'<br>'; 113} 114?> 115 116</body> 117</html>

補足情報(FW/ツールのバージョンなど)

データベースについてはMySQLを使用、
コードはCotEditorで書いて、
FileZillaを使用して動作確認をしています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

PHPでcreate tableから処理することはやめたほうがよいでしょう。
テーブルは事前に作っておいてそこにデータをはめ込んでいけば良いと思います
postデータのバリデートはfilter_inputで処理してください

投稿2018/09/26 00:34

yambejp

総合スコア114839

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

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

meronnnnnnnn

2018/09/30 11:40

ありがとうございます。解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問