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

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

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

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Q&A

解決済

1回答

3997閲覧

社員管理システム PHP作成

ryusan_012

総合スコア59

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

0グッド

0クリップ

投稿2018/05/28 02:05

こんにつは

現在社員管理システムをつくっています。
マスターテーブルに社員ID(ID)、社員名(name)、所属(class)、生年月日(birth)、論理削除したいので削除フラグ(delete_flag)を設定しています。
新規社員を追加する画面を作ったんですがPHPが読み込めてないみたいです。どこでエラーがおきてるのかわらずです。

画面の構成として一覧→新規→登録確認→登録結果表示 になります。
サーバーはxampp、言語はPHPでJAVASCRIPT使用しないでしてみたいです

<!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>register</title> </head> <body> <h1>新規登録</h1> <form method="get" action="regi_ch_phpp" name="form" /> 社員No : <input type="number" min="0" name="n_number" value="" /><br> 氏名 : <input type="text" name="n_name" value="" /><br> 所属 : <input type="text" name="n_class" value="" /><br> 生年月日 : <input type="date" name="n_birth" value="" /><br> <input type="hidden" name="flag" id="flag" value="<?php echo $_POST["del_flag"]; ?>" /> <input type="submit" value="確認" /> <input type="submit" value="キャンセル" /> <?php $pdo = new PDO ('mysql:host=localhost;dbname=staff_manager;charset=utf8', 'user', 'password'); $number=$_GET["n_number"]; $name=$_GET["n_name"]; $class=$_GET["n_class"]; $birth=$_GET["n_birth"]; $stm = $pdo->prepare('select count(*) from staff_master where ID = n_number'); $stm->bindValue(':n_number', $number, PDO::PARAM_INT); $ret = $stm->execute(); if($ret != 0){ echo "設備Noが重複しています。"; $stmt = $pdo->prepare('insert into staff_manager(ID,name,class,birth,delete_flag) values (:n_number, :n_name, :n_class, :n_birth)'); $stmt->bindValue(':n_number', $number, PDO::PARAM_INT); $stmt->bindParam(':n_name', $name, PDO::PARAM_STR); $stmt->bindParam(':'n_class, $class, PDO::PARAM_STR); $stmt->execute(); header("location: regi_ch.php"); } ?> </form> </body> </html>

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

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

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

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

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

y_nishizawa

2018/05/28 03:49

xamppからphpのエラーログが拾えると思いますので、そちらのエラー内容を書いていただけると、回答が付きやすいと思います。
m.ts10806

2018/05/28 06:26 編集

タグにPHP,MySQLも追加しておいてください。
m.ts10806

2018/05/28 06:27

「PHPが読み込めてないみたい」では何が起きているか分かりませんので、現象を具体的に追記してください。エラー表示はされているのでしょうか?していないのでしたら開発中は必ず表示させるようにしてください。https://qiita.com/shotets/items/3c95aef631b2c5eadae5
guest

回答1

0

ベストアンサー

動作するに至るまでにやったことをもって回答とします

  • value="<?php echo $_POST["del_flag"]; ?>"

formはgetなので、postがセットされることは多分ない

  • $stmt->bindParam(':'n_class, $class, PDO::PARAM_STR);

'の位置がおかしい':n_class'となるべき

  • $stmt->execute();

insert文にある:n_birthbindParamされてないので引数の数が合わないエラーになる

  • insert into staff_manager

直前では'select count(*) from staff_masterって書いてますよね、何というデータベースに何というテーブルがあるのでしょうか? dbとテーブルが混同されているように思います。

  • 蛇足ですが、$stm->executeの結果を$retで受けて!=0とやっても重複は判断できません。executeは成功かどうかをboolで返すので、成功したら(だいたいの場合に成功しそうですが)重複、失敗したら(権限とかコードミスとか)重複していない、と出ることになり、意図にあってないと推測します。あと、echoしても実行が中断しないので、重複登録が起こります。

と、いきなり沢山の指摘をしましたが、却って困ったのではないかと思います。
一つずつ理解して潰さないことには、できあがらないと思います(実行可能な全てのコードを貰う以外には)
実際に試したコードと試した結果のエラーを具体的に指摘していただかないと、質問者さんが今どのレベルにあって、どういうことなら解決できるのか、がないと一歩すすむための回答は難しいです

投稿2018/05/28 05:16

papinianus

総合スコア12705

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

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

ryusan_012

2018/05/31 01:33

ありがとうございます、ちょっとずつエラーを確認しながらやってみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問