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

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

ただいまの
回答率

90.51%

  • PHP

    20382questions

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

  • JavaScript

    16461questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQuery

    6720questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • SQL

    2396questions

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

  • JSON

    1158questions

    JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

DBからレコードデータを取り出し、表示することができない。

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 769

hiro0208

score 46

現在、取り組んでいるのが下記の内容です。
DBの操作を行い、操作内容を表示したいのですが、どこが原因なのか切り分けや記述の仕方などがわからない、ご教授いただければと思います。

*申し訳ないですが、デバッグのやり方がわかっていません。

【内容】
使用ファイルは2点で()の目的で使用しています。

1、 form.php(フォーム入力画面、JavaScriptの記述、DBの取り出しものの表示)
2、 apply.php (DBへの命令)

フォーム画面から入力
DBに挿入登録(DBへ登録まではできています)

入力を行なったフォーム画面の下側にテーブルを作り、
その中にDBから選択したフィールドのみを表示する。

JavaScript,jQuery,sql
の3つコードを記載していますので、ご確認お願いします。

【form.php】DBのデータを表示

$(window).load(function(){
    setList();
});
//登録データを一覧表示する
function setList() {
    var query = {};
    $.ajax({
        type :'POST',
        url : 'request/apply.php?mode=list',
        data :query,
        dataType :'json'
    }).done(function(data) {
        //データが存在しない場合(null)
        alert(data);
        console.log(data);

        if (data == null) {
            $('#set_table_list').html('登録データはありません。');
        }else {
            var content = '';
            $.each (data, function(i, obj) {
                content += '<tr>'

                                        +'<td>' + obj.category + '</td>'
                                        +'<td>' + obj.price + '</td>'
                                        +'<td>' + obj.company + '</td>'
                                        +'<td>' + obj.id + '</td>'
                                        +'<td>' + obj.manager + '</td>'
                                        +'<td>' + obj.month; + '</td>'
                                        +'<td><input type="button" value="編集" onClick="editData(' + obj.no + ');"></td>'//編集
                                        +'<td><input type="button" value="終了" onClick="completData(' + obj.no + ');"></td>'//終了
                                        +'<td><input type="button" value="削除" onClick="deleteData(' + obj.no + ');"></td>'//削除
                                    +'</tr>';
            });
            $('#set_list').html(content);
        }
    });
}


【form.php】テーブルとしてDBの内容を表示

            <div id="set_table_list">
            <table class="table table-bordered table-condensed">
                <thead>
                    <tr>
                        <td>No. </td>
                        <td>カテゴリー名</td>
                        <td>金額</td>
                        <td>会社</td>
                        <td>ID</td>
                        <td>担当者</td>
                        <td></td>
                        <td>編集</td>
                        <td>終了</td>
                        <td>削除</td>
                    </tr>
                </thead>
                <tbody id="set_list">
                </tbody>
            </table>
            </div>

【apply.php】DBサーバへの命令。switch文を使っています。

        case 'list' :
        //データ取得する
                $sql = <<<EOF
                        SELECT 
                            sd_category, 
                            sd_price, 
                            sd_company, 
                            sd_id, 
                            sd_manager, 
                            sd_month, 
                        FROM
                            テーブル名 
                        WHERE
                            del_flg = 0
EOF;
                //pdoクラスの変数$dbh$sqlの値を$stmtに代入($sqlの値を$stmtという変数にする)
                $stmt = $dbh->prepare($sql);
                //プリペーアドステートメントを実行する。
                $stmt->execute();

                $result = "";
                //プリペーアドステートメントの結果を取得(連想(ASSOC)配列で受け取る)
                while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
                        $result .= $row['sd_category'] ."," .$row['sd_price'] ."," .$row['sd_company'] .$row['sd_id'] .$row['sd_manager'] .$row['sd_month'] ."<br>\n"; 
                }
                //配列をJSON形式に変換して送信する
                header('Content-type:application/json');
                echo json_encode($row);
                break;        
コード
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • date

    2017/01/25 19:17

    デバッグを覚えた方がいいので使っているブラウザを教えてください。

    キャンセル

  • hiro0208

    2017/01/25 19:25 編集

    やはり、そうですよね。google chome 55.0.2883.95 (64-bit)なります。

    キャンセル

  • date

    2017/01/25 19:45

    F12を押して Consoleと表記されているところを表示しながら実行してみて下さい

    キャンセル

回答 1

+1

どこまでができていて、どこからができていないという認識なのでしょうか?
たとえば

apply.php?mode=listとありますがapply.phpにはpostでデータを送ってますね?
getで受けたmodeはきちんと参照できているのでしょうか?
(いきなりswitchの分岐から書かれているのでいまいち判断つきません)

$.ajaxについてもdoneよりsuccessで確認したほうがよいかもしれません
その際はerrorを併記してください

 $.ajax( {
 url : '・・・',
 type:'post'
 dataType:'json',
 data :{},
 success: function(msg){
   console.debug(msg);
 },
 error: function(XMLHttpRequest, textStatus, errorThrown) {
   console.log( textStatus);
 },
 });

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    20382questions

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

  • JavaScript

    16461questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQuery

    6720questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • SQL

    2396questions

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

  • JSON

    1158questions

    JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。