MySQLデータベースから取得したものとまったく同じ情報をすべて表示する3つのコンボボックスを追加しようとしています。私が書いたコードは、続行する前に、3つのコンボボックスがすべて入力されるまでページ全体を待機させるようです。
<?
$query = "Select * from tblWriters order by surname";
for ($i = 1; $i <= 3; $i++) {
$result = mysql_query($query);
echo "<tr><td>Writer".$i." *</td><td>";
echo "<select name='txtWriter".$i."' style='width: 200px;'>";
echo "<option value ='' selected='selected'></option>";
while ($row = mysql_fetch_array($result))
{
echo "<option value ='" . $row['id'] . "'> " . $row['surname'] . ", " . $row['name'] . "</option>";
}
echo "</select><td></tr>";
}
?>
このコードを最適化して、クエリが3回実行されないようにします。これは、ページの速度が低下する場所であると考えているためです。
入れたら
$ result = mysql_query($ query);
forループの外側では、2番目と3番目のコンボボックスは入力されません。結果のポインタをリセットすることを検討しましたが、それがどのように機能するのか理解できないようです。
また、whileループを再利用できるので、3回実行する必要はありませんか?
誰かが私を正しい方向に向けることができますか?私はPHPにかなり慣れておらず、自分で学ぼうとしています。どんな助けでも大歓迎です。ありがとう!