2009-04-26 11 views
0

私はフォームに投稿するフォームを持っています。私は特定の変数を投稿しています。私はそのクエリをビルドしてから、自分のページに呼び出します。データを投稿してクエリを作成し、1回の呼び出しで回答を表示するにはどうすればよいですか?PHPのフォームからのクエリ

多分私はそれを正しい言葉ではなく、私はこのことを学んでいますが、私は分かりません。最初に中間ページに投稿する必要がありますか?

例:フォーム(変数A &B)to-> page(A & Bがクエリで使用されています)。結果は同じページにあります。

これを行うことができますが、その方法は何ですか?

ありがとうございます!

+0

明確にするには:1ページで、フォームから送信されたデータを表示し、送信されたデータを使用したSQLクエリの結果も表示しますか? – hbw

+0

あなたがしたくない場合は、2ページも必要ありません。 – markus

答えて

0

具体的な例がなければ、それを書くのは難しいですが、それはかなり簡単です。

File1.php::非常に基本的な方法で

--your form submits to file2.php-- 

File2.php:

function processForm(inputs) [ 
    --MySql query goes here-- 
] 

function displayResults() [ 
    --Process your query results-- 
] 

processForm($_POST['vars']...); 
displayResults(); 

ん意味をなさない?単に結果を処理してから表示する機能を作ってください。

あなたが本当に気に入ってもらいたいのであれば、すべてを1つのファイルで実行することもできますが、最初に学習した方がまずこのテクニックをマスターする必要があります。

1

これは基本的な原則ですが、フォームからデータを入力する必要があります。たとえば、mysql_real_escape_string()を使用します。

しかし、単一のページに次のようなコードを持つことができます(それがテストされていません、私はこのコンピュータ上にできないよ):

<?php 

if(isset($_POST['name'])) 
{ 
    $query = "SELECT * FROM table WHERE firstname = '"+ mysql_real_escape_string($_POST['name']) +"'"; 
    while($node = mysql_fetch_rows()) 
    { 
     echo "The result: " . $node['id']; 
    } 
} 

?> 

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <input type="text" name="name" /> 
</form> 

これは、そこに自己を投稿するクエリを実行します結果をエコーし​​、フォームを再度表示します。

小さなツールなどの場合、これは大丈夫ですが、大規模なウェブサイトの場合は、リクエスト処理コードとhtmlを混在させないことをお勧めします。 mvcパターンなどのフレームワークを適用するためのフレームワークを使用してください。

+0

a)答えにmysql_real_escape_string()を使用してください。 b)連結のために+を使用することはできません。あなたはドットが必要です。そうでなければ、実際には1ページにすべてそれを行うための良い例です! – markus

+0

あなたの権利... PHPを使用してからしばらくです。私はあなたのコメントを反映するように編集しました。 – asgerhallas

+0

mysql_fetch_row()は連想配列を返しません。mysql_fetch_assoc()またはmysql_fetch_array()がそれを行います。また、これらの関数はすべてMySQLリソースを引数として取ります。しかし、そうでなければ、良い答え。 – hbw

関連する問題