おそらく、目標を達成する最も簡単な方法は、$colname_get_voice_search_men が -1 と等しくないかどうかを確認する if ステートメントでレコードセット コードをラップすることです (「search_type」が提供されているため、結果を制限する必要があります)。 else 分岐でレコードセット コードをコピーしますが、すべての結果を取得できるように WHERE 句と変数置換を削除します。
次のようなもの:
$colname_get_voice_search_men = "-1";
if (isset($_POST['search_type'])) {
$colname_get_voice_search_men = $_POST['search_type'];
}
if($colname_get_voice_search_men != -1){ // search_type specified
mysql_select_db($database_conn_talent, $conn_talent);
$query_get_voice_search_men = sprintf("SELECT * FROM view_voice_search_men WHERE voice_type_id = %s", GetSQLValueString($colname_get_voice_search_men, "int"));
$get_voice_search_men = mysql_query($query_get_voice_search_men, $conn_talent) or die(mysql_error());
$row_get_voice_search_men = mysql_fetch_assoc($get_voice_search_men);
$totalRows_get_voice_search_men = mysql_num_rows($get_voice_search_men);
}
else{ // return all
mysql_select_db($database_conn_talent, $conn_talent);
$query_get_voice_search_men = "SELECT * FROM view_voice_search_men";
$get_voice_search_men = mysql_query($query_get_voice_search_men, $conn_talent) or die(mysql_error());
$row_get_voice_search_men = mysql_fetch_assoc($get_voice_search_men);
$totalRows_get_voice_search_men = mysql_num_rows($get_voice_search_men);
}
Dreamweaver を使用していない場合は、おそらく SQL ステートメント ( $query_get_voice_search_men = sprintf(....) ) を作成する行の周りに if ステートメントを配置しますが、Dreamweaver が生成するコードを変更すると、多くの場合、Dreamweaver はレコードセットを認識しません。 . 現状では、私が提案している編集によって、Dreamweaver がレコードセットを「認識」できなくなる可能性があります。
そのため、サーバー ビヘイビアー パネルにレコードセットが表示されなくなったり、バインディング パネルにエントリが表示されなくなった場合は、Dreamweaver がレコードセット コードを正しく認識していません。その場合、私の提案は、元のレコードセット コード (およびバインディング パネルからの関連付けられた繰り返し領域とアイテム) を使用してページを構築し、ページで「完了」したら、条件を追加することです。コード。これにより、「すべてを返す」コードを追加する前に、Dreamweaver のレコードセット ツールを最大限に活用できます。
1 つのメモ: return all ブランチが膨大な数のレコードを返さないと仮定しています。その場合は、SQL に LIMIT 句を追加して、上位 1000 程度しか表示されないようにする必要があります。LIMIT に関するいくつかの説明が含まれている SELECT ステートメントについては、MySQL のドキュメントを参照してください。