• 締切済み

親子データの一覧表示サンプルありませんか?

作りたい物のイメージだけが先行し、知識が追いつかずに困っているPHP初心者です。 どうも全体を意識して作ろうとすると行き詰まってしまうので 小さな括りで部分的な処理を作ろうとしたのですが、ここでも困ってしまいました。 どうか皆さんのお知恵をお貸し下さい。 ここでの処理とは親データの一覧の一つを選択するとそれに対する従属データが一覧表示されるもので 例えば上段の一覧にある複数の中から一つの「店舗」を選択すると 同一ページ下段の領域にその「会員」データが一覧表示されるといったものです。 (環境:PHP⇔mySQL) 記事を検索すると近い質問があり、回答もあるのですが どうも具体的なコードがイメージできずサンプルをご紹介頂きたいのです。 (記事:http://oshiete1.goo.ne.jp/qa1862189.html) いくつかの記事を読むと基本的なものなので参考書などには サンプルが載っているとのことでしたが、少なくとも手持ちの本には 近いものがなく、またそれを探しに本屋を探すには現状を考えると 時間がかかりすぎるのでここでの質問に至りました。 またできることならデータの表示先「html」ファイルと処理の「PHP」とを分けたいのですが、 このケースでは可能なのでしょうか? サンプル、参考ページリンク、役立つ書籍などどれでも結構ですのでご紹介だけでもして頂けると助かります。 よろしくお願い致します。

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

>一覧で特定の親データを選択したタイミングで phpのみで処理するなら、ここで、一旦サーバーへ送信しなければなりませんので、 親データの一覧をSQLで取得して、ループ処理しつつ、送信用のタグ埋め込みを行う必要があります。 // 一覧表示&radioボタン付きフォーム表示用関数 // param $sql_result= mysql_query('select '); SQLの select文実行後の返値を入れる、エラーチェック済みのこと // param $script : 実行中のphpスクリプト名 // param $hidden : 次のデータ絞り込み時に再度利用する既知のデータを input type='hidden' で埋め込む文字列 // param $radio_colum : radioボタン設置カラム番号 0開始 function radio_table_show($sql_result, $script, $hidden, $radio_colum){ $rowcnt = mysql_num_rows( $sql_result); print <<<EOD <form action="$script" method="post"> $hidden <table border="1"><caption>${rowcnt}件を表示します</caption> <tr><th>row count</th> EOD; $flen = mysql_num_fields ( $sql_result); for($i=0; $i<$flen; $i++ ){ print '<th>' . mysql_field_name($sql_result, $i) . '</th>'; } if( $radio_colum >=0 && $radio_colum<$flen ){ $radio_field = mysql_field_name($sql_result, $radio_colum); }else{ $radio_field = ""; } print "</tr>\n"; $j=0; while($row= mysql_fetch_row($sql_result)) { $j ++; print "<tr><td> $j </td>\n"; for($i=0; $i<$flen; $i++ ){ $val = htmlspecialchars($row[$i]); if($i == $radio_colum){ print " <td><input type='radio' name='$radio_field' value='$val'>$val</td>\n"; }else{ print " <td> $val </td>\n"; } } print "</tr>\n"; } print "</table><br><input type='submit' value='next'></form>\n"; } --------------------- >その従属データを抽出・一覧表示する もう一度、ページ全体をphpから出力しつつ、従属データの表示も行う。 送信されてきたデータからsql文さえうまく作れば、上記関数を使い回し可能。

mapple55
質問者

お礼

サンプルありがとうございます。 折角なので「無事できました」と言いたく自分なりに試してみたのですが どうにも具体的な使い方、組み込み方がわからず現状解決に至っていません。 申し訳ないです... 他でもサンプルを探しつつ、地道に調べてやってみます。

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

webにしろ参考書にしろ、サンプルっていうのはだいたい機能的に部分的解説なので、組み合わせる力量がないと、それだけで完成にこぎ着けるのは難しいでしょう。 >親データの一覧の一つを選択するとそれに対する従属データが一覧表示 此一つについても、もっと細かく砕いてどこまで出来ているのかが問題です。 0.まず、htmlにおけるフォーム記述の基本文法くらいは理解している前提で 1.phpで、フォームデータのやりとりが出来ているのか? 2.MySQLにデータベースは構築できているのか? 3.phpからMySQLのデータベースにアクセス出来ているのか OS名とか、サーバーアプリ名とか、php version、MySQL versionで微妙に違うので、これらを抜きにサンプル提示しても動かないことが多い XAMPPなどをインストールしているならば、手軽にクリア出来そうだけど。 4.MySQLでの、selet文の記述法は、理解できているのか。 5.MySQLから受け取ったデータがどんな状態で受け取れているのか(配列とかハッシュとか)の理解は出来ているのか。 6.一覧表示にもいろいろあるが、配列データの表示にはループ処理が不可欠 この手順で、どのあたりで躓いているのでしょうか? >データの表示先「html」ファイルと処理の「PHP」とを分けたい データ表示のためには、phpで表示が不可欠ですけど? 表示用phpにおいて、処理用(関数のみ記述したphpファイル)をincludeして処理呼び出しすると言う方法がよく使われるのでは。 上記の各処理部分に該当するサンプルを、それぞれ関数として書き直して、呼び出し出来ればなんとか完成ってとこでしょうか。 7.phpの関数における、引数でのデータ受け渡し、関数からの戻り値の受け取りも理解できてますよね?

mapple55
質問者

補足

だいぶ前提となる部分を省いてしまいご迷惑をおかけしました。 確認項目として挙げられた点を補足します。 まず私が作りかけているものはgoogleMapを使ったコミュニティツールで ページ上にgoogleMapを配置し、利用者によって地図に印されたマーカーの位置情報および フォームから入力してもらったその場所の説明等の情報をPHPを介して DBへ保存、再度アクセスしたとき呼び出して表示するというものです。 現状では情報の保存、呼び出しの基本的な部分は作成済みなので SQLを用いたデータ処理用PHPは使っていてある程度理解しているのですが いざ登録したデータを一覧表示しようとしたら表示系でPHPを使うのは初めてだったためそのやり方で躓いてしまったというわけなのです。 所有している書籍には抽出データの表示の仕方としてループ処理を説明しているので 同じようにただデータを羅列するだけならできると思いますが、 問題は動的な動作をする一覧をgoogleMapやフォームと一緒に表示するやり方、 一覧で特定の親データを選択したタイミングでその従属データを抽出・一覧表示するやり方がイメージできずに二の足を踏んでいる状態です。 とりあえずやりたいこととは切り離して親子データが連動する部分だけでもできたなら先に進めるかもしれないと質問しました。 どなたかよろしくお願い致します。

関連するQ&A

  • Smartyで日記のタイトル一覧を表示したい

    すいません。書き方がわからなく、どのように質問していいかも解らないのですが。 書籍に付いていた、フリーの日記スクリプト(PHP&MySQL、Smaty)を使って、日記データの表示に挑戦しています。 入力項目を増やして、DBに登録、表示まではできるようになったのですが、 例えば「登録した日記のタイトルだけを一覧表示して各々の記事ページへのリンクを貼る」 ような出力をしたいのですが、Smatyがいまいちよくわからなく行き詰っています。 xxx.tpl → xxx.class.php → index.tpl のような流れで、データの受け渡しをしているのは何となくわかるのですが、 タイトル一覧を出力する記述を tpl に書くのか、class.php に書くのか、よくわからない上に、 どのように質問したらいいのかもいまいちわかりません。 この様な質問で大変恐縮ですが、どなたかイメージがおわかりになる方でもいらっしゃれば、 ご教授頂けないでしょうか。恐れ入ります。

    • 締切済み
    • PHP
  • SQLiteにイメージデータを格納、表示、SQLiteのデータセットアップ

    PHP5でSQLiteにイメージデータを格納、表示、SQLiteのデータセットアップのそれぞれのサンプルを教えてください。 画像掲示板のデータをすべてSQLiteで管理、選択していきたいです。

    • 締切済み
    • PHP
  • 詳細データを常に同一スペースに表示する方法

    PHP+MySQLで商品データの表示ページを作りたいと考えています。 データベースには最低限下記のデータがあるという前提です。 「商品別番号、カテゴリ名、商品名、価格、画像ファイル名」 理想は、一つの画面内に 1.カテゴリ一覧表示 2.(↑のカテゴリ一覧からどれかを選択(クリック)した際)  そのカテゴリに属する商品名のみを10件表示 ※10件以上ある場合は「次ページ」等のリンクを表示 3.(↑の商品名のどれかを選択(クリック)した際)  該当商品の詳細表示 をすることです。 購入したPHPの参考書では、1.と2.を同一ページで表示するスクリプトはありましたが、3.に関しては詳細表示だけの別画面へ遷移させる仕組みになっていました。 これを2.で表示される商品名のどれかをクリックすると、同一ページ内の詳細表示部にその商品のデータが表示される(=詳細表示部の内容だけが切替わっていく)ようにしたいのですが、どの様な方法が考えられるでしょうか? イメージは↓の様な感じです。 ┌――――――┬―┐ │  ** 3 ** │*1*│ │(詳細表示を │ │ │  切り替え) │ │ ├――――――┴―┤ │   ** 2 **   │ └────────┘ 今、自力で考えている方法は、フレーム分割して上記「3」の部分に詳細表示用スクリプト(例:syousai.php)を固定し、そこに選択された商品のデータを渡す事ですが…。 勉強し始めのため、色々考えていて頭の中がごちゃごちゃになってきております。 フレームを使わない方法や、根本の考え方が間違っている等々、色々なご意見、ご教示を頂けるととても有り難く存じます。どうぞ宜しくお願い致します。 ※参考書のスクリプトは http://www.nishi2002.com/demo/6/shop.php?cateid=2 です

    • ベストアンサー
    • PHP
  • 一覧の表示で名前をデータ数を表示したいのですが…

    お世話になります。 度々申し訳ないのですが、質問させてください。 現在mysqlに格納したデータの一覧を表示するページを作っているのですが、表示結果が思うようにいかず困っています。 環境:Mysql 5.1.22-rc,PHP  5.2.5 データベース:test01 main -------------------------------------------------------- id name kana 1 太郎 たろう 2 次郎 じろう 3 花子 はなこ -------------------------------------------------------- sub2 -------------------------------------------------------- id a_sakuhin   title 1 data_1   青空   1 data_2   夕日 1 data_3   流星   3 data_1   町並み 3 data_2   列車   -------------------------------------------------------- というテーブルがあります。 それを一覧表示で ・太郎 (3) ・次郎 (0) ・花子 (2) という具合にしたいのですが、どうしても()の中が全件合わせた結果になり ・太郎 (50) ・次郎 (50) ・花子 (50) という様になってしまうのです。 どういったsql文を書けばよいのかアドバイスを頂けると嬉しいです。 よろしくお願いいたします。

  • データを呼び出して表示させる方法

    趣味でホームページを作っているのですが、すべてhtmlとcssを使って作成していました。 最近になってphpの存在を知り、サイドバーなど全ページに共通する部分をphp化し、その便利さに感動しました。 今度は複数の記事(といっても各5行程度)にタグを付けて、カテゴリー別に呼び出せるようにしたいと思っています。 今はhtmlでページを1つづつ作っているのですが、ページ数が増えれば増えるほど手直しがとても大変で、しかも途中のページから1つ記事を削除するとそこだけ記事数が減ってしまい、それを直すのに一苦労します。 なので、ブログのように[カテゴリー1]をクリックするとそれだけが一覧表示され、10個ごとに次のページが表示されるような仕組みを作りたいです。 このようなものを作る場合、phpだけで出来るのでしょうか? それともデータベースのようなものを作る必要があるのでしょうか? 今までhtmlしか知らなかったので、何を勉強すればいいのか分からず困っています。 本を買ってもどれを使えば私のしたいことが出来るのか分からずお手上げ状態です。 よろしくお願いします。

  • 一覧ページでの表示について

    Movable Type 5でイラストギャラリーを作ろうとしています。 ブログの記事としてイラストを投稿し、 一覧ページで投稿したイラストの縮小画像を載せたいと思っています。 →ここまでは出来ました。この先が出来ず困っています。 例えば1つの記事の中に複数の画像(メインのイラストとおまけ的なイラスト)を挿入して記事を作成した場合、今のままだとその2枚目以降も一覧に表示されてしまいます。 1つの記事の中の一番最初の画像のみ一覧に表示させ、他は一覧には表示させないというのをしたいのです。 やり方をご存知の方はいらっしゃいますでしょうか? 宜しくお願い致します。

  • データ(表示)が切り替わってしまう

    以前「http://okwave.jp/kotaeru.php3?q=1862189」で質問させていただき、時間がなく、やっと実作業に移ったところの者です。 ■目的:MySQLを使い、「カテゴリ一覧表示」「(カテゴリorキーワード)検索結果一覧表示」「商品詳細表示」を一画面の中で行う。 ・前回ご回答頂いた内容では、それぞれの結果を変数に代入し、表示するということでしたが、参考にしている書籍では関数の中に表示処理も含んでいたので、そのまま利用してみました。 しかし、「カテゴリ一覧」は常に表示されるものの、「検索結果一覧表示」の中から一つの商品のリンクをクリックすると、「検索結果一覧表示」が消え、その代わりに「商品詳細表示」が現れる状態となります。 一つの画面に『検索結果一覧+カテゴリ一覧』か『商品詳細+カテゴリ一覧』がある状態です。 自分でも解決策を探し続けますが、並行して、もしも原因がお解かりになる方がおられましたら、何卒ご教示のほどよろしくお願いいたします。 // ページ内容の表示(switchで切り分け*↓一部) switch ($act) { default: // 商品検索画面 gamen_src(); //サブルーチン定義 ■function gamen_src() {  ・フォームデータ変換  ・テーブルの中に下記パーツを配置。   ・<?php dispprod(); ?>(商品詳細表示)   ・<?php dispall(); ?>(検索結果一覧)   ・<form>を使用し商品検索窓+ボタン   ・<form>を使用しかごの中身を表示   ・<?php dispcate(); ?>(カテゴリ検索(一覧表示)) ※文字数制限により「■function dispprod() 」「■function dispcate()」「■function dispall()」を省略していますが、回答補足にて明記させていただきたいと思います。どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • MySQLのデータをグラフ化して表示する

    最近PHPを初めてMySQLを扱えるようになったのですが、 そのデータをグラフ化して表示するようなサイトを作りたいです。 それはPHPとhtmlだけでできますか? JavaScriptやCSSを使う必要がありますか? どのような感じにやるか概略を教えて頂けるとありがたいです。 デザインとしては「何月から何月?」「どの商品?」とフォームで選択して 「送信」を押すとそれに基づきグラフ表示部分にグラフを表示するような感じにしたいです。 処理の流れが全くイメージつかないので ざっくりとした質問になってしまいましたがよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP+CSVを使った一覧表示&詳細表示をするには?

    PHPは全くの素人でどのようにやったらよいかわかりません。 fgetcsvは何となくわかって単純なCSVデータを表示はできたのですが、そのデータを使って一覧表示では、データの主要部分を表示させ、『詳細』はこちらを選択すると、選択した1つのデータの主要部を含めた残りのデータを表示させたい。 ***CSVデータ例**** Aさん,20代,男性,映画鑑賞,コメント,写真または画像 Bさん,30代,男性,スポーツ,コメント,写真または画像 ***HTML一覧表示例*** ┌────┬───┬──┬────┐ │ 【詳細】│20代│男性│映画鑑賞│ ├────┼───┼──┼────┤ │ 【詳細】│30代│男性│スポーツ│ └────┴───┴──┴────┘ ***HTML詳細表示*** 詳細を選択されたデータのみの全データをテーブル内のの指定されたセルに配置したい。 こんな事をしたいと思うのですが、簡単な方法はないでしょうか?お知恵をお貸しください。

    • ベストアンサー
    • PHP
  • phpでmysqlからデータを取り出して一覧表示

    phpでmysqlからデータを取り出して一覧表示させるプログラムを造りたいのですが、どうもうまくいきません。まずはデータの取り出し表示の仕方を教えてください。 $sqlstr="select * from webdiary where username=$id order by topicid asc"; $result = mysql_query( $sqlstr ); この後どのようにしたらよいでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう