0

すべての月と 2 つの特定の年に MySQL クエリを実行する PHP で書かれたページがあります。ページに移動すると、結果のデータを含むテーブルが表示されます。

私がやりたいことは、ユーザーにこのデフォルトのデータを与えた後、データを表示する月/年をユーザーが選択できるようにすることです。そのため、ドロップダウンの選択 (デフォルトでは 2011 年 1 月から 2012 年 12 月まで) が表示されるデータに影響するようにする必要があります。WordPress を使用していますが、これは WordPress 固有のものではありません。

したがって、PHP 内で現在実行しているクエリは次のとおりです (罪のない人を保護するために一部のフィールドは匿名化されています)。

    SELECT * 
    FROM database.table
    Where MonthNum >=1
    AND MonthNum <=12
    AND Year >=2011
    AND Year <=2012

しかし、私がやりたいのは、クエリが実行される場所の上に、HTML のドロップダウンとして 4 つの入力フィールドを作成することです。それらは、MonthMin (デフォルト 1)、MonthMax (デフォルト 12)、YearMin (デフォルト 2011)、YearMax (デフォルト 2012) になります。したがって、クエリは次のようになります。

    SELECT * 
    FROM database.table
    Where MonthNum >= MonthMin
    AND MonthNum <= MonthMax
    AND Year >= YearMin
    AND Year <= YearMax

また、デフォルトの日付から取得していたため、出力は最初のクエリと同じになります。ただし、次にやりたいことは、ユーザーが別の日付セットを選択できるようにすることです。たとえば、MonthMin を 2 に設定して、1 月を無視し、[送信] をクリックすると、ページはリロードされますが、ユーザー定義のデータが使用されます。デフォルトの代わりにクエリで。

SQL インジェクションについて私を教育することを心配しないでください。私もそれに取り組んでいます!

4

1 に答える 1

1

落とし穴。いくつかのオプションがあります。ajaxを使用してページ全体を更新せずに「送信」することができます...または、送信get / postで選択した値を渡し、ページが読み込まれたときに$_REQUESTでそれらの値が存在するかどうかを確認できます。渡された場合は、渡された値を使用します。ページの読み込み時に$ _REQUESTに新しい値が存在しない場合にのみ、デフォルトで設定します。

于 2012-06-08T19:01:28.827 に答える