私は以下のようなSQLストアドプロシージャを持っています:
create procedure procedurename
declare @startdate datetime, @enddate endtime, @field1 varchar(15) = null
select * from table1
where field1 = @field1 or @field1 is null
and date between @startdate and @enddate
そして、field1のすべての値を表示したい場合は、以下のように実行している間、パラメーター@field1の指定を無視します。
execute procedurename @startdate = '01/07/2012', @enddate = '31/07/2012'
ブラウザでストアドプロシージャにアクセスしたいので、以下のコードを試しましたが、[すべて選択]オプションを選択すると、空白の結果が表示されます。
<?php
$attr = 'selected="selected"'; ?>
<?php
$field1= isset($_REQUEST['field1']) ? $_REQUEST['field1'] : null; ?>
<select name="field1" style="margin-bottom:3px;">
<option> select all </option>
<option value="xyz" <?php echo $field1 == 'xyz' ? $attr : ''; ?>>xyz</option>
<option value="abc" <?php echo $field1 == 'abc' ? $attr : ''; ?>>abc</option>
<option value="def" <?php echo $field1 == 'def' ? $attr : ''; ?>>abc</option>
</select>
したがって、基本的に、ドロップダウンボックスから[すべて選択]を選択した場合、field1のすべての値を選択したいと思います。