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

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

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

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

PHP

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

Q&A

解決済

1回答

1680閲覧

就労移行支援記録表のタイムカードの作成でのバグ

rura

総合スコア70

MySQL

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

PHP

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

0グッド

0クリップ

投稿2016/10/04 01:03

###前提・実現したいこと
就労移行施設のタイムカードで利用者が事業所へ出勤や退勤した後に打刻後にこちらに月別ごとに打刻結果が表示されるようなシステムを作ってます。

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

現在、困っていることは打刻結果が1つ出ることに余分に2つ出てしまうこと このままだと月別事に表示されないので、打刻するとすべて出てしまい、 他の利用者の方のぶんまではいってしまうが 書き方がよくわからないことです。

###該当のソースコード

<?php ini_set('display_errors', 'On'); error_reporting(E_ALL); $dsn = 'mysql:dbname=mfdb;host=localhost'; $user = 'root'; $password = ''; $db = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); //日本語の曜日配列 $weekjp = array( '日', //0 '月', //1 '火', //2 '水', //3 '木', //4 '金', //5 '土' //6 ); try { $sql = "SELECT * FROM users JOIN work"; $stmt = $db->prepare($sql); $stmt->execute(); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); echo "<div class='Record'> <br> <table> <thead> <tr> <th class='writing1' rowspan='3'>日付</th> <th class='writing2' rowspan='3' width='5px'>曜日</th> <th colspan='8'>サービス提供実績</th> <th class='inkan' rowspan='3'>利用者<br>確認印</th> <th rowspan='3' colspan='2'>備考</th> </tr> <tr> <th class='service' rowspan='2'>サービス<br>提供状況</th> <th rowspan='2'>開始時間</th> <th class='service' rowspan='2'>終了時間</th> <th colspan='2' class='ct1'>送迎加算</th> <th>訪問支援特別加算</th> <th class='east' rowspan='2'>食事提供<br>加算</th> <th class='service' rowspan='2'>移行準備<br>支援体制<br>加算</th> </tr> <tr> <th>往</th> <th>復</th> <th>時間数</th> <tr> </tr> </thead>"; foreach ($rows as $row) { echo "<tbody> <tr> <td> ".$row['workday']."</td> <td> ".$row['workweek']."</td> <td></td> <td> ".$row['worktime1']."</td> <td> ".$row['worktime2']."</td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td colspan='2'>".$row['workadnotes']."</td> </tr> </tbody>";?> <?php } echo "<tr> </tr> <th colspan='5' rowspan='2'>合計</th> <th colspan='2' rowspan='2' ><input type='number' name='counter1' id='counter1'>回</th> <th rowspan='2'><input type='number' name='counter2' id='counter2'>回</th> <th rowspan='2'><input type='number' name='counter3' id='counter3'>回</th> <th rowspan='2'>施設外<br>支援</th> <th>当月</th> <th class='haiti'><input type='number' name='counter4' id='counter4'>日</th> <th rowspan='2' colspan='2' width='40px'>/</th> </tr> <tr> <th>累計</th> <th class='haiti'> <input type='number' name='counter5' id='counter5'>日/180日</th>"; echo "</tr> <tr> </table> </div>"; $db = null; } catch (Exception $e) { echo $e->getMessage(); } ?>

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
PHP、mysql

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

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

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

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

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

kei344

2016/10/04 01:59

まだ質問が「受付中」になっていますが、いったん「解決済」にされてはいかがでしょうか。また、解決されていないなら状況をお教えください。
guest

回答1

0

ベストアンサー

Aさんの打刻した情報がすべてのユーザーにくっついて表示されてしまうという問題でよいでしょうか?
であれば

$sql = "SELECT * FROM users JOIN work";
ここが問題です。
users と work の結合条件を追記してください。

$sql = "SELECT * FROM users JOIN work ON users.user_id = work.user_id";
(上記のカラム名は適切に変更する必要があります)

投稿2016/10/04 01:10

koutan1976

総合スコア142

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

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

rura

2016/10/04 01:15

そうなんです。なぜか、それが1回の打刻事に2回分表示されてしまうのです。
koutan1976

2016/10/04 01:19

workとusersのテーブル構造がどうなっているのかわかりませんが 通常だと $sql = "SELECT * FROM users JOIN work"; この書き方では不足になるはずです。 結合条件を追記してください。 もし意味がわからなければworkのusersと関係しそうなカラム名を記載してください。
rura

2016/10/04 01:27

ありがとうございます。 こちらは解決されました。 あとはこれが月別に表示できて、それが検索できるようにするだけです。 <form method="post" action="#" class="rcd"> <div class="Record"> <p class="ymd"><input type="text" name="workyear" size="1" value="<?php if (isset($_GET['workyear'])) {echo htmlspecialchars($_GET['workyear'],ENT_QUOTES,"UTF-8");} ?>">年 <input type="text" name="workmonth"size="1" value="<?php if (isset($_GET['workmonth'])) {echo htmlspecialchars($_GET['workmonth'],ENT_QUOTES,"UTF-8");} ?>">月分 <input type="submit" name="submit" value="検索"></p> <table> </form>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問