-2

だから私はSQLにテーブルを持っています。基本的に検査報告書です。私はそれがうまく機能するフォームを作成しました。提出します。ここで、テーブルから個々のレポートを呼び出して、php のテーブルに表示する方法を作成したいと考えています。以下のコードは、私の情報を表示するのに完全に機能します (例として 3 つを使用すると、3 つ以上の列があります)。問題は、基本的に一度に 1 つの検査レポートのみを表示したいことであり、おそらく提出された日付に基づいて検索を作成することさえあります。以下のコードは、すべてのテーブルを選択する方法を知っている唯一の方法です。

<?php 

$result = mysql_query("SELECT * FROM inspection ORDER BY name");

echo "<table border='1'>
<tr>
<th>ID #</th>
<th>Name</th>
<th>inspection #</th>
</tr>";

while($row = mysql_fetch_array($result))
{
  echo "<tr>";
  echo "<td>" . $row['id'] . "</td>";
  echo "<td>" . $row['Name'] . "</td>";
  echo "<td>" . $row['Inspection #'] . "</td>";
  echo "</tr>";
}
echo "</table>";

?>

これはうまく機能しますが、検索でより適切に使用する方法を知る必要があります。私はエンドユーザーのためにPHPを介してこれを行っていることに注意してください.

4

2 に答える 2

1

SELECT * FROM 検査 WHERE<column> <operator> <value>

<value>エンドユーザーがオプションから値を選択するドロップダウン、またはエンドユーザーが必要なものを入力する入力フィールドなど、さまざまな場所から取得できます。同様に、where ステートメントに句を追加することで、他の多くのオプションをフィルター処理できます。

与えられた例への追加として、Name が Bob であるインスペクションのみを選択する場合は、次のことができます。

SELECT * FROM インスペクション WHERE Name = 'Bob'

名前をエンド ユーザーが定義する「汎用」にしたい場合は、入力フィールドを指定します。

検索.php

<form action="result.php" method="post">
     <input type="text" name="Name" />
</form>

結果.php

SELECT * FROM inspections WHERE Name = $_GET['Name']

上記は非常に大まかなアイデアですが、良い出発点になるはずです。@Matt が追加されたように、サーバー側またはクライアント側で実行できます。

于 2012-07-30T14:41:36.017 に答える
0

これを行うには 2 つの方法があります。ページのサーバー側処理によるページネーション、または JavaScript (jquery) ページネーションです。

過去に両方を行ったことがありますが、jQuery データテーブルが優れたツールであることがわかりました。すべてのレコードをページに出力すると、jQuery が引き継ぎ、それらをページ形式で表示します。http://datatables.net/

サーバー側のページネーションでこれを行うには、レコード数と現在のレコードを追跡する必要があります。次に、SQL ステートメントを次のように変更する必要があります。

SELECT * FROM inspection ORDER BY name LIMIT $page, 1

テーブル内を前後に移動するたびに $page を渡します。かなりコード集約的ですが、探している場合は良い練習になります。

最後に、日付範囲内で検索する場合は、クエリをさらに変更できます。

SELECT * FROM inspection 
WHERE date BETWEEN [some start date] AND [some end date] 
ORDER BY name LIMIT $page, 1
于 2012-07-30T14:41:08.903 に答える