Q&A
###はじめに
先日も同様な質問を致しました。
その際は、ページを開くとDBからのデータを表示させるというだけのものでした。
回答の中に引数を入れればいろいろ便利などとアドバイスを頂き参考になりました。
しかし、流れというか少しつかみきれていない部分がありますので、質問いたします。
###やりたいこと
条件指定による検索と表示
// ページ構成
[index.php]
条件を選択し、POST送信して、抽出されたデータを表示させる
[processing.php]
条件を元にDBからデータを抽出する
[controller.php]
processingから抽出されたデータを元にtableを作成する
###だいたいの基本的なコード
PHP
1[index.php] 2<form action="processing.php" method="POST"> 3<input type="text" name="name"> 4<input type="radio" name="sex" value="male">男 5<input type="radio" name="sex" value="female">女 6<input type="submit" name="serch" value="検索"> 7</form> 8 9// 検索結果をここに表示 10<?php serch_result(); ?>
MySQL
1[processing.php] 2function db_serch() { 3$name = $_POST['name']; 4$sex = $_POST['sex']; 5$dbh = connectDb(); 6$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 7$sql = "SELECT * FROM test WHERE name = :name AND sex = :sex"; 8$stmt = $dbh->prepare($sql); 9$stmt->bindParam(':name', $name, PDO::PARAM_STR); 10$stmt->bindParam(':sex', $sex, PDO::PARAM_STR); 11$stmt->execute(); 12$rows = $stmt->fetchAll(); 13return $rows; 14}
PHP
1[controller.php] 2function serch_result() { 3$rows = db_serch(); 4$cnt = count($rows); 5for ($i = 0; $i < $cnt; $i++) { 6$name = $rows[$i]['name']; 7$sex = $rows[$i]['sex']; 8echo $name . '=' . $sex; 9} 10}
###問題点
上記では当然処理はできておりません。
1.formから送るのはprocessingで良いのか?
もしかして、controllerに送って変数代入などをしてからがいいのか?
2.functionで関数を作ることで、isset($_POST['○○'])があったならこの関数という処理になりそうなんですが、この場合の書き方はどのようになるのか?
if () { function(){ }}
ということになるのか?
function(){ if() { }}
ということになるのか?
3.結局のところ、値を送る->受け取る->処理する->データを送る->データを受け取り編集するという一連の流れに関して、イマイチ理解できていない(これじゃ全部ですが、、、)です。
###先日の質問での大まかな中身
PHP
1[index.php] 2// データ表示 3<?php table_view(); ?>
MySQL
1function table_date() { 2// DB接続 3// データ抽出 4$rows = $stmt->fetchAll(); 5return $rows; 6}
PHP
1function table_vie() { 2$rows = table_date(); 3$cnt = count($rows); 4// for文で回して表示させる部分を作成 5}
このような流れの部分は一応やってできました。
###仕様など
classなどではなく、上記のようにページで処理を分けるということでやっていきたいので、はっきり言って無駄が多い!と思われるでしょうが、あくまでもこのスタイルで考えていただければと思います。
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2016/05/21 07:01