PHPを使用した新しいページでのSQLクエリのエコー
質問
これはおそらく本当に素人の質問であることは知っていますが、これを理解することはできず、PHPやMySQLについてもあまり知りません。
つまり、ユーザーが基本的に数行のテキストと郵便番号を送信して、それをデータベースに書き込み、結果をサイトに返すことができる、非常にシンプルなスクリプトがあります。基本的にはシャウトボックスです。
クライアントは、ユーザーが郵便番号で結果をフィルタリングできるようにしたいと考えています。すべてのセットアップが完了し、ユーザーが郵便番号を入力して検索すると、PHPがその郵便番号からの送信を返す検索入力があります。
PHPスクリプトからエコー自体を表示する結果を取得できますが、サイト内の指定されたdiv内に表示するにはどうすればよいですか?基本的に、ユーザーが検索する変数である郵便番号を保存し、ページが更新されたらそれを使用して、その郵便番号以外の結果を除外する更新されたリストを表示します。
助けてくれてありがとう。
クリス
解決
書き換えなどを行わずに:
-
ページをリダイレクトするとき、空白を送信せず、入力欄に< strong>指定された形式:
search.php?zipcode = 90210
-
次に、検索結果ページで、渡された変数をフェッチして、通常どおり動作します:
$ zipcode = $ _GET ['zipcode'];
-
郵便番号が適切にエスケープされていることを確認してください。
他のヒント
HTMLページをPHPページにします(通常、拡張子を.phpにします)。ターゲットdivのコンテンツを<?php stuff to get and print results ?>
で置き換えます。
WebサーバーにPHPをインストールして構成している場合、特定のファイル(通常は.phpで終わるファイル)を取得し、PHPのインタープリターで実行します。 PHPインタープリターは、ドキュメントに<?php
がある場合はいつでも呼び出され、?>
ブロック内で<div><?php
print 'Hello World!';
?></div>
に出会うとコンテンツの解析を停止します。
たとえば、印刷するWebページを取得するには<!> quot; Hello World!<!> quot; PHPを介してdivに変換するには、次のようにします。
<=>
OK、わかりました。答えをSESSION変数に保存したので、他のPHPファイルで呼び出すことができます。
今、リクエストを処理し、セッションと変数を作成してからページをリダイレクトするファイルが1つあります。次に、ページにPHPを含めて、SESSION変数を取得し、mysql_queryにプラグインして適切な結果を返します!
これが最善の方法であるかどうかはわかりませんが、機能しています。...よりエレガントなソリューションを知っている人がいれば、ぜひ知りたいです。
ありがとう、 クリス
mysqliでのPHPおよびデータベース取得の使用に関するチュートリアルを行うことをお勧めします。
<?php
/* Connect to a MySQL server */
$link = mysqli_connect(
'localhost', /* The host to connect to */
'user', /* The user to connect as */
'password', /* The password to use */
'world'); /* The default database to query */
if (!$link) {
printf("Can't connect to MySQL Server. Errorcode: %s\n", mysqli_connect_error());
exit;
}
/* Send a query to the server */
if ($result = mysqli_query($link, 'SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5')) {
print("Very large cities are:\n");
/* Fetch the results of the query */
while( $row = mysqli_fetch_assoc($result) ){
printf("%s (%s)\n", $row['Name'], $row['Population']);
}
/* Destroy the result set and free the memory used for it */
mysqli_free_result($result);
}
/* Close the connection */
mysqli_close($link);
?>