phpを使用してmysqlクエリをフィルタリングする

ホワイトグリーン

MySQLから複数の結果を取得する必要があり"and""where"追加して同じクエリを複数回使用する必要があります例えば:

私の最初のクエリ:

$class = "SELECT * FROM schools WHERE class= '8'";

私の他の質問:

$class8a ="SELECT * FROM schools WHERE class= '8' AND SECTION= 'A'";
$class8b ="SELECT * FROM schools WHERE class= '8' AND SECTION= 'B'";

...等。学校の他のすべてのクラスについても同様です。私は現在何度もクエリを書いていますが、配列内のデータベースから結果を取得し、それを後続のクエリ用にフィルタリングすることで、これを行う簡単な方法があるかどうか疑問に思いました。

LSerni
$class8a ="SELECT * FROM schools WHERE class= '8' AND SECTION= 'A'";

クエリをテキスト変数に格納します。つまり、後で使用する予定であり、そこに次のように記述します$class8a

$db->query($class8a);

これにより、おそらく別の問題が発生しますクラス8、セクションAが存在することを知っおく必要があります。クラスが追加または削除された場合は、コードを書き直す必要があります。これは効率的ではなく、恐ろしくエラーが発生しやすくなります。

したがって、これを行う1つの方法は、学校のすべてのクラスとすべてのセクションをフェッチして、配列にデータを入力することです。

$query = "SELECT DISTINCT class, section FROM schools";
$stmt  = $db->query($query);
$pairs = [ ]; // or $pairs = array(); in older PHPs
while ($pair = $stmt->fetch()) {
    if (!array_key_exists($pair['class'], $pairs) {
        $pairs[$pair['class']] = [];
    }
    $pairs[$pair['class']][$pair['section']] = "SELECT * FROM schools WHERE class= '{$pair['class']}' AND section = '{$pair['section']}'";
}

これで、の$pairs['8']['A']代わりにを使用できます$class8aまたは、変数変数を使用して変数を定義できます

while ($pair = $stmt->fetch()) {
    $nameOfVar = $pair['class'] . strtolower($pair['section']);
    $$nameOfVar = "SELECT * FROM schools WHERE class= '{$pair['class']}' AND section = '{$pair['section']}'";
}

しかし、名前付き変数を使用すると存在するかどうかを簡単に知る方法があり$class7fません(使用できますissetが、厄介だと思います)。配列使用すると使用できますが、厄介だと思います)、それら列挙したり、どのクラス存在する可能性あるかを知ることはできません。を使用してforeach)。

また、誰かが補助セクションを作成し(それらはありますか?)、「星、プラスまたは追加の半分が親または生徒によって判断的であると認識される可能性があるため」のA'代わりにA*A+またはA1/2「 "。A'コードによってSQLインジェクション攻撃として認識されているWHERE section='A'';は構文エラーです。

そして、あなたは今、たくさんの同様のクエリをメモリに保持しなければなりません。

推奨される解決策

さらに良いのは、クラスとセクションができたら、その場でクエリを作成するだけです。

$classQuery = $db->prepare('SELECT * FROM schools WHERE class=? AND section=?');

次に実行するには、PDOを使用するとこれは簡単に機能します:

$classQuery->execute([ '8', "A'" ]);

配列を使用して、物事を追跡し、どのクラスが存在するかを知ることができます。

$query = "SELECT DISTINCT class, section FROM schools;";
$stmt  = $db->query($query);
$pairs = [ ]; // or $pairs = array(); in older PHPs
while ($pair = $stmt->fetch()) {
    if (!array_key_exists($pair['class'], $pairs) {
        $pairs[$pair['class']] = [];
    }
    $pairs[$pair['class']][] = $pair['section'];
}

これにより、たとえば、HTMLにクラスコンボを配置できます。

$combo = '<select name="class">';
foreach (array_keys($pairs) as $class) {
     $combo .= "<option value=\"{$class}\">{$class}</option>";
}
$combo .= "</select>";

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

フォームオプションを使用してMYSQLクエリをフィルタリングする

分類Dev

INを使用してDynamoDBクエリをフィルタリングする

分類Dev

ROLLUPを使用してSQLクエリをフィルタリングする方法

分類Dev

C#でクエリを使用してエンティティをフィルタリングする方法は?

分類Dev

django で他のクエリを使用してクエリをフィルタリングする方法

分類Dev

where句の列エントリを使用してクエリをフィルタリングする方法

分類Dev

MySQLでクエリをフィルタリングする方法

分類Dev

UISearchBarを介してCoreDataを使用してクエリをフィルタリングする

分類Dev

mysqlデータベースクエリを調整して列値をフィルタリングする

分類Dev

グループ化とフィルタリングを使用してSQLServerクエリを高速化する方法

分類Dev

フォームを使用してmysql / phpテーブルデータをフィルタリングする方法

分類Dev

idProduct、quantityを渡してクエリをフィルタリングする

分類Dev

リストの値を使用してlinqクエリ結果をフィルタリングする

分類Dev

AND / OR演算子を使用してリスト/クエリをフィルタリングする方法AWSAmplify JavaScript GraphQL

分類Dev

LaravelとEloquentのクエリを使用してフィルタリング可能なリストを作成する

分類Dev

LaravelとEloquentのクエリを使用してフィルタリング可能なリストを作成する

分類Dev

リアクティブを使用して入力をフィルタリングするときのエラー

分類Dev

Pythonを使用してmongodbクエリから重複ログをフィルタリングする方法

分類Dev

SQLクエリを使用してデータセットをフィルタリングする

分類Dev

SQLクエリでMAX関数を使用してデータをフィルタリングする

分類Dev

EXTRACTステートメントoracleを使用してクエリをフィルタリングする方法

分類Dev

linqクエリを使用してリストからフィルタリングする

分類Dev

Varcharとして保存されたDateTimeでMySQLクエリをフィルタリングする

分類Dev

LINQクエリをフィルタリングしてグループ化してデータを取得する

分類Dev

SQL ServerでCAST()とサブクエリを使用してレコードをフィルタリングする

分類Dev

jmesクエリを使用してネストされた配列をフィルタリングする

分類Dev

max(date)値を使用してクエリをフィルタリングする方法

分類Dev

Jmeterを使用してクエリがフィルタリングされたことを確認する

分類Dev

entrustを使用してLaravel5の雄弁なクエリをフィルタリングする方法

Related 関連記事

  1. 1

    フォームオプションを使用してMYSQLクエリをフィルタリングする

  2. 2

    INを使用してDynamoDBクエリをフィルタリングする

  3. 3

    ROLLUPを使用してSQLクエリをフィルタリングする方法

  4. 4

    C#でクエリを使用してエンティティをフィルタリングする方法は?

  5. 5

    django で他のクエリを使用してクエリをフィルタリングする方法

  6. 6

    where句の列エントリを使用してクエリをフィルタリングする方法

  7. 7

    MySQLでクエリをフィルタリングする方法

  8. 8

    UISearchBarを介してCoreDataを使用してクエリをフィルタリングする

  9. 9

    mysqlデータベースクエリを調整して列値をフィルタリングする

  10. 10

    グループ化とフィルタリングを使用してSQLServerクエリを高速化する方法

  11. 11

    フォームを使用してmysql / phpテーブルデータをフィルタリングする方法

  12. 12

    idProduct、quantityを渡してクエリをフィルタリングする

  13. 13

    リストの値を使用してlinqクエリ結果をフィルタリングする

  14. 14

    AND / OR演算子を使用してリスト/クエリをフィルタリングする方法AWSAmplify JavaScript GraphQL

  15. 15

    LaravelとEloquentのクエリを使用してフィルタリング可能なリストを作成する

  16. 16

    LaravelとEloquentのクエリを使用してフィルタリング可能なリストを作成する

  17. 17

    リアクティブを使用して入力をフィルタリングするときのエラー

  18. 18

    Pythonを使用してmongodbクエリから重複ログをフィルタリングする方法

  19. 19

    SQLクエリを使用してデータセットをフィルタリングする

  20. 20

    SQLクエリでMAX関数を使用してデータをフィルタリングする

  21. 21

    EXTRACTステートメントoracleを使用してクエリをフィルタリングする方法

  22. 22

    linqクエリを使用してリストからフィルタリングする

  23. 23

    Varcharとして保存されたDateTimeでMySQLクエリをフィルタリングする

  24. 24

    LINQクエリをフィルタリングしてグループ化してデータを取得する

  25. 25

    SQL ServerでCAST()とサブクエリを使用してレコードをフィルタリングする

  26. 26

    jmesクエリを使用してネストされた配列をフィルタリングする

  27. 27

    max(date)値を使用してクエリをフィルタリングする方法

  28. 28

    Jmeterを使用してクエリがフィルタリングされたことを確認する

  29. 29

    entrustを使用してLaravel5の雄弁なクエリをフィルタリングする方法

ホットタグ

アーカイブ