0

オプションがデータベースのテーブルから決定されるドロップダウン選択のあるフォームがあります。定期的に (手動で) ドロップダウンとデータベースにオプションを追加します。次のように、ドロップダウン選択でデータベースからオプションを取得できます。

<select class="form-control" name="category" id="category">

    <?php
    $sql = "SELECT id, category FROM categories;";
    $result = $GLOBALS['conn']->query($sql);
    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            $category = $row['category'];
            $id = $row['id'];
            echo "<option value='$id'>$category</option>";
        }
    }
    ?>
</select>

今更新する必要があるのはデータベースだけで、フォーム自体が更新されるため、作業が少なくなります。

または、次のようにフォームにオプションを手動で入力することもできます。

<select class="form-control" name="category" id="category">
    <option value='1'>option1</option>
    <option value='2'>option2</option>
    <option value='3'>option3</option>
</select>

この方法では、より多くの手作業が必要になりますが、毎回データベースに接続する必要がないという利点があります (サーバーの作業が少なくなります)。

私の質問は、どの方法を使用すればよいですか? より多くの作業を提供する方法またはサーバーにより多くの作業を提供する方法?

4

1 に答える 1

0

選択にデータベースを使用することには賛否両論があります。pro 引数に関しては、比較的簡単に更新できます。新しい値を挿入するだけで、フォームに表示されます。このアプローチの問題は、フォームをレンダリングするたびにアプリケーションがクエリを実行することです。数百万回のクリックがある Web サイトでは、これは良い考えではありません。そのため、使用される代替手段は、特にこれらの値があまり変化しない場合に、クエリ結果が何らかの中間層にキャッシュされることです。私の経験から、これらの値を処理する最善の方法は、構成ファイルから値をロードすることです。これらはめったに変わらない値であり、そこに新しい値を追加できます。これらは引き続きキャッシュでき、データベース ヒットは必要ありません。

于 2016-08-07T22:37:14.487 に答える