スレッド表示 | フラット表示〕 全トピック 920 件中 834 番目 次≫ ≪前

PHPからSQLの再表示についてお伺いします。

created: 2003-07-24 09:54 | modified: 2003-07-30 02:10 | reply: 19

[453] PHPからSQLの再表示についてお伺いします。

user: たろう | created: 2003-07-24 09:54
お世話になります。

よくある一覧表示から、プルダウンで
SQLをSelectして、一覧表示させた後で、
下記のようにプルダウンで再度、SQLをORDER BYで再クエリーして再表示するサンプルはありますでしょうか?

<center>
<table border = "0">
<tr>
<td width = "250">該当物件は<font color= "orange"> 123 </font>件ありました。</td>
<td width = "250">
<select size = "1" name = "frm_kensekubn">
<option value = "地区">地区昇順</option>
<option value = "金額">金額昇順</option>
</select>
<input type = "submit" value = "並べ替え">
</td>
</tr>
<table>
</center>
reply: 454 返信 編集 削除

[454] 補足なのですが。。。。。

user: たろう | created: 2003-07-24 10:14
お尋ねします。
表組みのHTMLをPHP用に変更するツールなどはあるのでしょうか?
echo等。
Parent: 453  reply: 458 返信 編集 削除

[458] 再表示について

user: たろー | created: 2003-07-25 18:40
POSTで自分自身のPHPをActionすればできますでしょうか?
そのとき、並べ替えを行うものをパラメータで渡して、SQLで切り替えると良いのでしょうか?
Parent: 454  reply: 459 返信 編集 削除

[459] はい???

user: ゆうじ | created: 2003-07-25 20:12
SQL文を構成する変数を、
<input type="hidden" ・・・>
でフォームに埋め込んでおいて、
再び自分自身にPOSTで渡すという意味で良いですか?

それで出来そうですね。

↑こういう答が欲しいわけではないとわかるのですが、
具体的に何を答えてよいのやら迷います。
Parent: 458  reply: 463 返信 編集 削除

[463] そうなんです。

user: たろー | created: 2003-07-25 23:50
よく郵便番号検索なんかでありますよね。

普通あるのが、都道府県選択、郵便番号入力BOXがあり、『検索実行』ボタンを送信すると別ブラウザで一覧画面が表示されるというのは簡単ですが、 検索実行画面⇒一覧画面(ソート選択可能)とした場合、一覧画面でソート選択『並び換え実行』を押すと一覧を再表示できればいいなと思いつきました。
Submitのとき、自分自身の一覧画面を送信して並び換えのフィールドを覚えておいてSQLで再実行して同じechoのルーチンで一覧HTMLを吐き出せば可能なのかと思いました。
Parent: 459  reply: 464 返信 編集 削除

[464] 処理の大まかな流れ

user: ゆうじ | created: 2003-07-26 03:33
どのフォームから送信されたものかを知らなくても、
値を渡せばなんらかの処理をするのがスクリプトです。
この掲示板スクリプトもSQLこそ使ってませんが、
同じスクリプトにPOST又はGETでさまざまな値を渡して
異なる処理をさせています。


ひとまず細かな処理は置いといて、
一覧表示処理の大きな流れって
こんな感じではありませんか。(推測)

(1)POSTで渡ってきた変数からSQL文を作る
(2)DBにSQL文を渡し問合せの結果を得る
(3)問合せの結果をブラウザに表示する

この流れの中に、
「並替え条件選択フォームを表示する」
という処理を加えれば良いような。

もちろんそのフォームには、
(1)で使ったSQL文を構成する変数も、
<input type="hidden" name="xxx" value="xxx">で埋め込んでおく。

このフォームの送信先はもちろん自分自身。

値を受け取ったスクリプトは、再び(1)?(3)を実行。

こんな感じになると思うのですが。
あと、(1)では、並替え条件を加えて、
SQL文を作る処理に書きかえる必要がありますね。


PHPをお勉強中のようですね。
「思った事は、やって確かめる」ほうが
身に付くと思いますよ。
がんばってくださいね。
Parent: 463  reply: 465 返信 編集 削除

[465] 今まではWindowsNTでした

user: たろー | created: 2003-07-26 13:25
はい。
今までの経験ではゴルフの検索サイトのように
NTサーバーとASPとAccess.mdbは製作したことがあるのですが…
Parent: 464  reply: 467 返信 編集 削除

[467] まぁ直接書いちゃいますが..

user: うなどん ホームページ | created: 2003-07-26 20:17
<td width = "250">該当物件は<font color= "orange"> 123 </font>件ありました。</td>
<td width = "250">
<form method="POST" action="' . $_SERVER['SCRIPT_NAME'] . ''">
<select size = "1" name = "frm_kensekubn">
<option value = "地区">地区昇順</option>
<option value = "金額">金額昇順</option>
</select>
<input type = "submit" value = "並べ替え" name="submit">
</form>


SCRIPT
if ($_POST) {
foreach($_POST as $key => $val) {
switch(TRUE) {
case ($key === "submit"):
$area = $_POST['frm_kensekubn']);//地区 or 金額
break;
default:
exit;
}
}
}
※このまま使っちゃダメですよ.sqlインジェンクションやらの処理が抜けています.

ASPとAccess.mdbで経験があるなら後はSQLだけです.
全体の処理の流れはゆうじさんの書かれた通りです.
Parent: 465  reply: 471 返信 編集 削除

[471] ---

user: --- | created: 2003-07-29 14:45
--- 削除されました ---
Parent: 467  reply: 473 474 475 返信 編集 削除

[473] すみません

user: うなどん ホームページ | created: 2003-07-29 15:09
全く意味不明です.
Parent: 471  reply: 476 返信 編集 削除

[476] ---

user: --- | created: 2003-07-29 15:32
--- 削除されました ---
Parent: 473  reply: 481 482 返信 編集 削除

[481]

user: うなどん ホームページ | created: 2003-07-29 21:17
> VBやAccessでしたら言語普段から使っているので簡単なのですが.…(ペコリ)
WEBアプリケーションでしょ?
httpの仕組みを研究してください.

VBやaccess.vbaを簡単だとおっしゃるくらいですから,すぐでしょう.:-)
Parent: 476  返信 編集 削除

[482] 何を答えたらよいのか見えてきません

user: ゆうじ | created: 2003-07-29 22:42
私も[481]のうなどんさんと同感です。

きっとそのつもりは無いとは思いますが、
もし、たろうさんが求めてるものが
解答となる『ソースコード』そのもの、
又はソースコードの添削ならば、
この場で質問することではなく、
お金をはらってプログラマーに依頼することだと思います。

PHPを「学ぶ」「理解する」というスタンスでいらっしゃるのならば、
わからないことを整理してひとつひとつご質問いただければ、
わかる範囲で解決のヒントをお伝えしたいと思います。

私の誤解ならばお許しください。
Parent: 476  reply: 484 返信 編集 削除

[484] ゆうじさんお力添え感謝します!

user: たろー | created: 2003-07-30 00:24
ゆうじさんお力添え感謝します!

私のスキルは…
特に、今までWEB関係は力を入れてきたわけでもなく、3年程前にASPで検索ソフトを作った程度です。
それからガンガンと毎月積み重ねてきたわけでもなく今日まできています。
年も年なので若くないですし…
なのでその間忘れていることもありますが、経験といいますとVBAを使ってAccessでの販売管理ソフトを作成する程度です。
どちらかというと私の本業は、パソコンのトラブル対応(マシンとソフト的な事)でサポートセンターにおりますので急な客先の故障を直ぐに直したり、ソフト会社が製作しトラブルが発生したDataBaseソフトを設定したり、Windows2000Serverの導入をしたりが多いので、似通ったところありますが、全くWEBアプリケーションについてははっきりいってよちよち歩きのあまちゃんです。
私の方が、的を得てないバラバラな質問をしたのがよくなかったと思います。
一歩一歩確実に前進していきたいと思っていますので、とっぴ押しもないコメントを書き込むかもしれませんが、なるべく気をつけますのでよろしくお願いします。(^^)
Parent: 482  reply: 485 返信 編集 削除

[485] こちらこそ失礼いたしました。

user: ゆうじ | created: 2003-07-30 02:10
言葉が過ぎたところがあったかもしれません。
申し訳ありませんでした。

PHPを学ばれるのなら、
先ずはPHPマニュアルをご覧頂くことをお薦めいたします。
簡単な例文を含め大抵ことは載ってます。
http://www.php.net/manual/ja/

あと、masagoさんのサイト「離れPHP島」が、
PHPの構文から易しく解説してあって特にオススメです。
http://masago.kir.jp/


#おまけ(テストしてません)
http://www.sound-uz.jp/php/tips/meisai_disp.php.txt
Parent: 484  返信 編集 削除

[474] たぶん

user: うなどん ホームページ | created: 2003-07-29 15:14
やろうとしてらっしゃる事は,
例えば(私のサイト内ですが)
http://u-u-club.ddo.jp/~unadon/index.php?mode=bbs
ここの「並べ替え」みたいなことでしょう?

上のコードで実現しています.

POSTされた値を受け取り,SQLを組み立て再度同じテーブル作成ルーチンに投げるだけですが...
Parent: 471  reply: 477 返信 編集 削除

[477] うなどんさんこれは・・・・

user: たろー | created: 2003-07-29 15:58
たびたびすみません。
下記のスクリプトは、PHPの<?php
?> に記述しないとダメなのでしょうか?
ロジックをざっと見ますと
スイッチで切り替えておられるようですが、
SELECT * はどの位置に挿入すればよろしいでしょうか?

SCRIPT
if ($_POST) {
foreach($_POST as $key => $val) {
switch(TRUE) {
case ($key === "submit"):
$area = $_POST['frm_kensekubn']);//地区 or 金額
break;
default:
exit;
}
}
}
※このまま使っちゃダメですよ.sqlインジェンクションやらの処理が抜けています.
Parent: 474  reply: 480 返信 編集 削除

[480] SELECT

user: うなどん ホームページ | created: 2003-07-29 18:57
上記のコードはフォームからPOSTされた内容を受け取るだけのものです.

受け取った内容を加工してSQL文を作るのは,当然この「後」です.

それから,
誤:$area = $_POST['frm_kensekubn']);
正:$area = $_POST['frm_kensekubn'];

このままじゃダメだって・・・
Parent: 477  返信 編集 削除

[475] 補足ですが

user: たろー | created: 2003-07-29 15:30
補足ですが、初回入ったときにフラグかスイッチで2回目以降、パラメータにMOVEしないようにできれば、同じ内容を再表示できると思うのですが、VBのように初回フラグ内がNullとか判断できないのでしょうか?
if AA = "" だと思いますが… 
何も、セットしないとき、内容はNullではないのでしょうか?
Parent: 471  reply: 479 返信 編集 削除

[479] PHP内で実行するとエラーとなります。

user: たろー | created: 2003-07-29 17:30
エラー箇所は
$area = $_POST['frm_kensekubn']);
の行なんですが

<?php

if ($_POST) {
foreach($_POST as $key => $val) {
switch(TRUE) {
case ($key === "submit"):
$area = $_POST['frm_kensekubn']);
break;
default:
exit;
}
}
}

?>
Parent: 475  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 834 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑