1

基本的にこれは私のコードです:

echo "<SELECT>";
foreach($arr_res as $op) {
   $q3 = mysql_query(mysql_fetch_array("SELECT SL_TIME FROM SLOTS WHERE SL_ID='$op'"));
   echo "<OPTION value=".$op.">".$q3."</OPTION>";
}
echo "</SELECT>";

$arr_resの結果の配列ですarray_diff。タイムスロットのSL_IDである数値のみが含まれています。SL_TIMEを表示したいのですが、得られる結果は$q3空の結果を生成します。なぜこれが機能しないのですか?

4

1 に答える 1

1

mysql_fetch_arrayをクエリしません。Mysql_queryは、mysql_fetch_arrayを使用した場合に結果を返します。したがって、正しいコードは次のようになります。

echo "<SELECT>";
foreach($arr_res as $op){
$result = mysql_query("SELECT SL_TIME FROM SLOTS WHERE SL_ID='$op'");
$q3=mysql_fetch_array($result);
echo "<OPTION value=".$op.">".$q3."</OPTION>";
}
echo "</SELECT>";

ただし、$ q3は配列になりますが、これはおそらくあなたが望むものではありません。さらに、PDO(http://www.php.net/manual/en/class.pdo.php)などの抽象化を使用するとはるかに優れています。これにより、パフォーマンスが最大化され、セキュリティが向上します。

于 2012-10-07T15:48:41.537 に答える