• 締切済み

GETで送られたデータを元に必要なSQL文を作る

FORMのSELECTなどで選択されたデータをGETで送り、 それをもとにSQLの文章を作りたいと思っています。 $yyy = "SELECT * FROM table WHERE 1 AND {$a} < mysqlA AND {$b} < mysqlB AND mysqlC IN({$b}) ・・・"; のようにすればSQLの文章を作れると思いますが、FORMで選択されていないデータを対象にした文章までも入ってしまいます。 FORMより送られたデータだけのSQLの文章を作りたいです。 下記のようなやり方以外に良い方法はありますか? MYSQLのデータ ------------------------------- mysqlA | mysqlB |  ・・・ 4     |  55  |  ・・・ 5     |  33  |  ・・・ 77    |  17  |  ・・・ :       :     : :       :     : <?php  :  : $lll = array( "getA"=>"mysqlA", "getB"=>"mysqlB", "getC"=>"mysqlC", "getD"=>"mysqlD", "getE"=>"mysqlE",   : ); $yyy = 'SELECT * FROM table WHERE 1'; foreach($lll as $key=>$val){ if(!isset($_REQUEST[$key]) or $_REQUEST[$key]==='') {$_REQUEST[$key]="";} switch($key){ case "getA": $ga = explode("+", $_REQUEST[$key]); $yyy .= ' AND {$ga[0]} <= {$val} AND {$val} < {$ga[1]}'; break; case "getB": $yyy .= 'AND {$val} BETWEEN CURDATE() - INTERVAL {$_REQUEST[$key]} YEAR AND CURDATE() - INTERVAL 1 DAY'; break; case "getC": case "getD": case "getE": $yyy .= ' AND {$_REQUEST[$key]} <= {$val}'; break; ~ 他のcaseが続く ~ } } $ddd = new PDO($host,$user,$pass); $sss = $ddd->prepare($qqq); $rrr = $sss->fetchAll(PDO::FETCH_ASSOC);  :  : ?> <html xml:lang="ja" lang="ja"> <head> <title></title> </head> <body> <form action="#">   : <select name="getB" onchange="changeDate()"> <option value="0"<?php if(isset($_REQUEST[$getB]) && $_REQUEST[$getB]==0){echo ' selected="selected"';} ?>>0</option> <option value="20"<?php if(isset($_REQUEST[$getB]) && $_REQUEST[$getB]==20){echo ' selected="selected"';} ?>>20</option> <option value="50"<?php if(isset($_REQUEST[$getB]) && $_REQUEST[$getB]==50){echo ' selected="selected"';} ?>>50</option> </select>   :   :

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

>条件を指定しない場合は、その全部を対象にしたいです。 え?それで「FORMで選択されていないデータを対象にした文章までも入ってしまいます」ということは、指定した条件もセットされていないということですか? 一度、$qqq をprintして「自分が作りたかったSQL文になっているか」を確認してください。 正直case文で分けているロジックは(どの変数が何になっているかの説明もないし、用途が想像しにくい変数名だし)追う気にもなりません。ただ、「指定した条件が全部andになっている」のであれば、上記のような結果にはならないハズです。どこかで想定外のSQL文になってしまっていると思われます。 なお、プレースホルダを使わないならPDOを使う意味はほとんどありません。「テスト段階だからエスケープしていない」といってもプレースホルダさえ使っていればエスケープを意識する必要も列の型を考慮する必要もありません(勝手に処理してくれるので)。 逆にこの状態でエスケープを「適切に」入れるのは無理です(ネイティブなMySQL関数ならmysql_real_escape_stringを通すんでしょうけどね)。結局プレースホルダに書き直すしかありません。 今のうちに書き直してください。そうすればSQL文に渡したプレースホルダとそれに対応させるために作成した配列に気を配れば大きな破綻はありません。

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

条件を AND で繋いでいますから、指定されなかった条件は「条件なし」になるのが当然だと思います。いったい指定しなかった条件について、どう処理したいのでしょうか?たとえば性別:男、年齢:20~50という条件があっても職種:未指定であれば、職種は全部が対象になって当然ですよね。 あと、 >$sss = $ddd->prepare($qqq); そもそも$qqqというステートメントがどこでどう組み立てられているかわかりません($yyyはあるようですが、どういう関係なんでしょうか)。 また、prepareを使っているのにbindParamもexecuteもないのが不思議です(そもそもプレースホルダも使っていないように思えます)。どうしてそういう書き方をしているのか・・・・。エスケープ処理はどうやっている「つもり」なんでしょうか。

taurin1000kg
質問者

お礼

指摘して頂き、有難うございます。 >条件を AND で繋いでいますから、 >指定されなかった条件は「条件なし」になるのが当然だと思います。 >いったい指定しなかった条件について、 >どう処理したいのでしょうか? その通りで良いです。 条件を指定しない場合は、その全部を対象にしたいです。 >>$sss = $ddd->prepare($qqq); >そもそも$qqqというステートメントがどこでどう組み立てられているかわかりません >($yyyはあるようですが、どういう関係なんでしょうか)。 間違えました。$sss = $ddd->prepare($yyy);です。 >prepareを使っているのにbindParamもexecuteもないのが不思議です >(そもそもプレースホルダも使っていないように思えます)。 >どうしてそういう書き方をしているのか・・・・。 プレースホルダは使わず、queryで良いのですか? $ddd = new PDO($host,$user,$pass); $sss = $ddd->query($yyy); $rrr = $sss->fetchAll(PDO::FETCH_ASSOC); >エスケープ処理はどうやっている「つもり」なんでしょうか。 サンプルなので処理していません。

関連するQ&A

  • いろいろな処理をさせてSQL文を効率的に作りたい

    $_REQUEST['getA']、$_REQUEST['getB']、$_REQUEST['getC'] ・・・ とあり、 これらをMYSQLのSQL文に効率的に組み込んでいきたいです。 mysqlのデータと$_REQUESTのキー名と対応させた$lllを foreachでそれぞれをswitchで処理を分けて、 $qqqのSQL文に組み込んでいるつもりです。 よろしくお願いします。 $lll = array( "getA"=>"mysql_colum_name_A", "getB"=>"mysql_colum_name_B", "getC"=>"mysql_colum_name_C", "getD"=>"mysql_colum_name_D", "getE"=>"mysql_colum_name_E" ); foreach($lll as $key=>$val){ if(!isset($_REQUEST[$key]) or $_REQUEST[$key]==='') continue; switch($key){ case "getA": $ga = explode("+", $_REQUEST[$key]); $val_A = $val; break; case "getB": $gb = $_REQUEST[$key]; $val_B = $val; break; case "getC": $gc = $_REQUEST[$key]; $val_C = $val; break; case "getD": $gd = $_REQUEST[$key]; $val_D = $val; break; ~ 他のcaseが続く ~ } } $qqq =<<<__SSS__ SELECT * FROM table WHERE 1 AND ga0 <= val_A AND val_A < ga1 AND `colum_B` BETWEEN CURDATE() - INTERVAL gb YEAR AND CURDATE() - INTERVAL 1 DAY AND gc <= val_C AND gd <= val_D AND val_E IN(ge) ORDER BY field deskORasc LIMIT L1,L2; __SSS__; $sss = $ddd->prepare($qqq); $sss->execute(array( ':ga0'=>$ga[0], ':ga1'=>$ga[1], ':val_A'=>$val_A, ':gb'=>$gb, ':val_B'=>$val_B, ':gc'=>$gc, ':val_C'=>$val_C, ':gd'=>$gd, ':val_D'=>$val_D, ':ge'=>$ge, ':val_E'=>$val_E, ~いろいろなものが続く~ ':field'=>$field, ':deskORasc'=>$deskORasc, ':L1'=>0, ':L2'=>50 )); $rrr = $sss->fetchAll(PDO::FETCH_ASSOC);

    • ベストアンサー
    • PHP
  • PDOを使ったSQL文の入力方法

    私のやりたいことはSQL文の実行なのですが、PDOを使った操作になります。 どうかご教授お願い致します。 <th>価格帯</th> <td> <select name="price_min"> <option value="1" selected="selected">下限なし</option> <option value="10000000">1000万</option> <option value="15000000">1500万</option> <option value="20000000">2000万</option> 以下略 <th>愛知県 - 名古屋市</th> <td> <input type="checkbox" name="chiiki_id[]" value="1" <?php if (isset($_REQUEST['chiiki_id']) and in_array('1',$_REQUEST['chiiki_id'])) print 'checked'; ?>/> 中村区 <input type="checkbox" name="chiiki_id[]" value="2" <?php if (isset($_REQUEST['chiiki_id']) and in_array('2',$_REQUEST['chiiki_id'])) print 'checked'; ?>/> 西区 <input type="checkbox" name="chiiki_id[]" value="3" <?php if (isset($_REQUEST['chiiki_id']) and in_array('3',$_REQUEST['chiiki_id'])) print 'checked'; ?>/> 昭和区 <input type="checkbox" name="chiiki_id[]" value="4" <?php if (isset($_REQUEST['chiiki_id']) and in_array('4',$_REQUEST['chiiki_id'])) print 'checked'; ?>/> 港区 </td> <th>こだわり条件</th> <td> <input type="checkbox" name="kid[]" value="1" <?php if (isset($_REQUEST['kid']) and in_array('1',$_REQUEST['kid1'])) print 'checked'; ?>/> 新築 <input type="checkbox" name="kid[]" value="2" <?php if (isset($_REQUEST['kid']) and in_array('2',$_REQUEST['kid2'])) print 'checked'; ?>/> 南向き <input type="checkbox" name="kid[]" value="3" <?php if (isset($_REQUEST['kid']) and in_array('3',$_REQUEST['kid3'])) print 'checked'; ?>/> セキュリティ充実 <input type="checkbox" name="kid[]" value="4" <?php if (isset($_REQUEST['kid']) and in_array('4',$_REQUEST['kid4'])) print 'checked'; ?>/> 市街地が近い<br /> <input type="checkbox" name="kid[]" value="5" <?php if (isset($_REQUEST['kid']) and in_array('5',$_REQUEST['kid5'])) print 'checked'; ?>/> 内装リフォーム <input type="checkbox" name="kid[]" value="6" <?php if (isset($_REQUEST['kid']) and in_array('6',$_REQUEST['kid6'])) print 'checked'; ?>/> システムキッチン <input type="checkbox" name="kid[]" value="7" <?php if (isset($_REQUEST['kid']) and in_array('7',$_REQUEST['kid7'])) print 'checked'; ?>/> ペット可</td> </tr> </table> <input type="submit" value="検索" class="Btn-gray button"> </form> $sql = 'SELECT DISTINCT * FROM bukken'; //名古屋の地域checkbox if(isset($_POST['chiiki_id'])and is_array($_POST['chiiki_id'])){ $ary = array_filter($_POST['chiiki_id'], function($v) {return is_numeric($v);}); $sqlA = 'id IN (SELECT chiid FROM chiiki WHERE chiiki_id IN ('.implode(',', $ary).'))'; }else{ //print '地域がチェックされてません'; $sqlA = ' 1 '; } //kid絞り込み if(isset($_POST['kid'])and is_array($_POST['kid'])){ $ary = array_filter($_POST['kid'], function($v) {return is_numeric($v);}); $sqlK1 = 'id IN (SELECT fid FROM fudou_kodawari2 WHERE kid IN ('.implode(',', $ary).'))'; }else{ //print '<br />こだわりがチェックされてません'; $sqlK1 = ' 1 '; } のようなフォームからチェックされた値のkidのところを絞った条件で表示させたいです。下記のPHPで値を受けてSQL文をMySQLに接続してSQLを実行するのですが、中々出来ません。 そして テーブルがbukkenとkodawariがあります。 bukken id bukken_name chiiki_id address price_min price_max     station 1 名駅MID    1 愛知県名古屋市中村区 40770000 55100000 名古屋駅 2 プレサン浄心 2 愛知県名古屋市西区城西 30800000 40001000 浄心駅 3 アネシア八事 3 愛知県名古屋市昭和区 50000000 62510000 八事日赤 4 アメニ港明 4 愛知県名古屋市港区港明 25000000 35000000 港区役所駅 5 ユーハウス上飯田 15 愛知県名古屋市北区 32000000 43330000 上飯田駅 6 ローレル葵 6 愛知県名古屋市東区葵x 30000000 46000000 高岡駅 7 ライオンズ2 愛知県名古屋市西区山木 35000000 55000000 上小田井駅 8 ポレスター名西 2 愛知県名古屋市西区名西 28000000 38000000 浄心駅 fudou_kodawari2 fid kid 1 1 1 2 1 3 2 1 3 2 3 3 3 4 4 3 5 4 6 4 7 1 8 1 8 2 8 4 このようなテーブルでSELECT DISTINCT * FROM bukken WHERE (id IN (SELECT fid FROM fudou_kodawari2 WHERE kid IN (1,2,3)))と言うSQL文を入力すると id bukken_name chiiki_id address price_min price_max     station 1 名駅MID    1 愛知県名古屋市中村区 40770000 55100000 名古屋駅 2 プレサン浄心 2 愛知県名古屋市西区城西 30800000 40001000 浄心駅 3 アネシア八事 3 愛知県名古屋市昭和区 50000000 62510000 八事日赤 4 アメニ港明 4 愛知県名古屋市港区港明 25000000 35000000 港区役所駅 7 ライオンズ2 愛知県名古屋市西区山木 35000000 55000000 上小田井駅 8 ポレスター名西 2 愛知県名古屋市西区 28000000 38000000 浄心駅 kidの条件 1の場合  fidが 1,2,7,8 2の場合 fidが 1,3,8 3の場合  fidが 1,3,4 なので  1,2,3,4,7,8 という結果が表示されますが、1,2,3の全てに一致する条件しか表示できないようにする(結果が1になる)にはどのようなSQL文を入力すれば良いのでしょうか?

    • ベストアンサー
    • PHP
  • プルダウンで選択された値を保持

    お世話になります。 PHPとMysqlでプログラムを作成しています。 プルダウンメニューを選択し、Submitボタンを押した後も選択された値を保持したままの状態にしたいのです。 以下のようなプログラムでdata2の場合だと保持ができますが、dataの場合は「すべて」に戻ってしまいます。 以上・未満を使用する場合の値の保持はどのようにすればよいのでしょうか? 宜しくお願い致します。 <select name='data'> <option value=' ' <?php if($data==" "){print " selected";} ?>>すべて <option value=' AND (data >= 1.8 AND data < 2.0) '<?php if($data>=1.8 AND $data < 2.0){print " selected";} ?>>1.8GHz以上 2.0GHz未満</option> <option value=' AND (data >= 2.00) '<?php if($data>=2.00){print " selected";} ?>>2.0GHz以上</option> <option value=' AND (data >= 2.80) '<?php if($data>=2.80){print " selected";} ?>>2.8GHz以上</option> </select> <select name='data2'> <option value='%' <?php if($data2=="%"){print " selected";} ?>>すべて <option value='1MB'<?php if($data2=="1MB"){print " selected";} ?>>1MB</option> <option value='2MB'<?php if($data2=="2MB"){print " selected";} ?>>2MB</option> </select> <input type="submit" value="絞り込む" name="submit1">

    • ベストアンサー
    • PHP
  • セレクトボックスの選択を保持したい。入力フォーム。

    セレクトボックスの選択を保持したい。入力フォーム。PHP 送付画像のような、セレクトボックスの「時間指定1」で選択したい時間をセレクトボックスから選んで、確認画面へのボタンをクリックすると、「時間指定1」にまた、戻ってしまいます。ここのセレクトボックスの選択をキープしたいのですが、どうコードを書けば良いのかわかりません 提示したコードにもあるように 参考書に書いてあったのですが、セレクトボックスの選択をキープするプログラミングコードを以下のようにすれば良いと。そのまま書いてみたのですが、確認画面へのボタンをクリックすると、やはり「時間指定1」に戻ってしまいます。 <option value="10:00~11:00"><?php if(isset($timehh1) && $timehh1==="10:00~11:00") { echo "selected" ;} ?>>10:00~11:00</option> どこが間違っているのでしょうか? コードを教えて頂けないでしょうかいただけないでしょうか?よろしくお願いいたします。困っています。 以下書いたコードになります。 <?php session_start(); $errors = array(); if(isset($_POST['submit'])) { $time4 =$_POST['time4']; $timehh1 =$_POST['timehh1']; if($time4 === "") { $errors['time4'] ="第1希望:※月と日付を選択してください。 "; } if($timehh1 === "") { $errors['timehh1'] ="第1希望:※時間指定1を選択してください。 "; } if(count($errors) === 0) { $_SESSION['time4'] = $time4; $_SESSION['timehh1'] = $timehh1; } if(isset($_GET['action']) && $_GET['action'] === 'edit'){ $time4 = $_SESSION['time4']; $timehh1 = $_SESSION['timehh1']; } ?> <!DOCTYPE html> <html> <head> <meta content="text/html; charset=utf-8"/> <?php echo "<ul>";foreach($errors as $value) { echo "<li>"; echo $value; echo "</li>"; } echo "</ul>"; ?> </head> <body> <form action ="form1.php" method ="post"> <td class="b">第1希望:<span class="fontS">※</span></td> <input type="date" id="input_date1" class="cal lt_004 hasDatepicker" name="time4" value="<?php if(isset($time4)){ echo $time4; } ?>"/></td > <select id="input_time1" name="timehh1"> <option value="">時間指定1</option> <option value="10:00~11:00"><?php if(isset($timehh1) && $timehh1==="10:00~11:00") { echo "selected" ;} ?>>10:00~11:00</option> <option value="11:00~12:00"><?php if(isset($timehh1) && $timehh1==="11:00~12:00") { echo "selected" ;} ?>>11:00~12:00</option> </select > <input type ="submit" name ="submit"value="確認画面へ"/> </form> </body></html>

    • ベストアンサー
    • PHP
  • JavaScriptの入力制御がうまく働きません。

    JavaScriptでフォームの入力制御を行い、POSTされた値をPHPで精査して表示するコードを書いたのですが、下の例の「フード」で「その他」以外を選択するとまったく何も表示されません。ちなみにPHPのdisplay_errorsを.htaccessでOnにしてもエラーは表示されず、またJavaScriptをOFFにすると正常に表示されることから、PHPのコードではなく、JavaScriptのtxt.value=""; の部分に問題があると思われます。ですが、いろいろ調べましたが手詰まりになりました。 PHPとJavaScriptの双方にお詳しい方、どうかご教授くださいますようお願いいたします。 以下、問題のコードです。長くて申し訳ありませんm(_ _)m <script type="text/javascript"> function zzz(list,txt){ if (list.value == "その他"){ txt.disabled=false; }else{ txt.value=""; txt.disabled=true; } } </script> <?php if(!isset($_POST['pet'])){ ?> <body onload="zzz(document.getElementById('pet'),document.getElementById('petOther')),zzz(document.getElementById('food'),document.getElementById('foodOther'))"> <form method="post" action="test.php"> ペット: <select name="pet" id="pet" onchange="zzz(this,document.getElementById('petOther'))"> <option value="" selected="selected">↓</option> <option value="犬">犬</option> <option value="猫">猫</option> <option value="その他">その他</option> </select> (⇒<input type="text" name="petOther" value="" size="20" id="petOther" />) <br /> フード: <select name="food" id="food" onchange="zzz(this,document.getElementById('foodOther'))"> <option value="" selected="selected">↓</option> <option value="缶詰">缶詰</option> <option value="ドライフード">ドライフード</option> <option value="その他">その他</option> </select> (⇒<input type="text" name="foodOther" value="" size="20" id="foodOther" />) <button class="submit" type="submit"><span class="submitBTN">送信内容確認画面へ進む</span></button> </form> <?php }else{ print "<body>\n"; foreach($_POST as $key => $val){ if($key == "pet"){ if($val != "その他"){ $pet = $val; } } if($key == "petOther"){ if(!empty($val)){ $pet = $val; } } if($key == "food"){ if($val != "その他"){ $food = $val; } } if($key == "foodOther"){ if(!empty($val)){ $food = $val; } print $pet."に".$food."を与える"; } } } ?> </body> </html>

  • sql文について

    sql文のswichをif分で変更したい。 下記のswitch文のlimitの範囲をユーザーが<a href="sqlpage1.php?sex=男&p=2">2ページ目</a>,<a href="sqlpage1.php?sex=男&p=3">3ページ目</a>,<a href="sqlpage1.php?sex=男&p=4">4ページ目</a>・・・・・・などを選択しクリックした場合にlimitの範囲を変更したいのですが(例 1ページ目・0~10、2ページ目・11~20、3ページ目・21~30、4ページ目・31~40・・・・・・) if文はどう書けばいいですか? ページはcssが一緒なので変えなくていいかなと思い一緒にしました。 以下、デフォルト(sqlpage1.php?sex=男&p=1)のものです。 switch($_REQUEST['sex']) { case 男; $sql = 'SELECT * FROM human where sex="男" order by limit (0,10)';ここを変更したい。 break; case 女; $sql = 'SELECT * FROM human where sex="女" order by limit 0,10'; break; case 中性; $sql = 'SELECT * FROM human where sex= "中性" order by limit 0,10'; break; }

    • ベストアンサー
    • MySQL
  • SELECTタグで変更禁止にする方法

    下記のようなSELECTで変更を禁止したいです。 <form name="MyForm"> <select name="MySelect" multiple> <option val="1">A</option> <option val="2" selected>B</option> <option val="3">C</option> <option val="4" selected>D</option> </select> disabledという手もありますが、選択されている状態を保持したまま 変更禁止にしたいです。 また、textareaなどに入れて、readonlyとという手もありますが、 状態によっては変更可能にもしたいので、SELECTのままが良いです。 もちろん方法論はjavascript以外でも構いません。 宜しくお願いします。

  • MySQLを反映させたプルダウンメニューについて

    『MySQLデータベースのテーブル』 ID、品名、色(1)、色(2)、色(3)、… (例:1、”靴下”、”白”、”赤”) 『PHP文』 <?php … $result = "select * from テーブル名 where name= \"靴下\""; print "<form method = POST action=「出力先」>"; print "<select name=color>"; $data = mysql_fetch_row($result); foreach($data as $key => $val){ if ($key>1 and $val !=null){ echo "<option value = '".$key."'>".$val."</option>"; } } …以下… ?>) 「ユーザーに品名をまずは選んでもらい、次にその品の色を選んでもらう」 というプログラムを組みたくて… ただし、品により色が多かったり少なかったりするため、 MYSQLから対応する色名を引き出してきてプルダウンに反映させる というような上記の方法をとりました。 ここで問題が発生… 次のページに選んでもらった色名のキー($key)が$_POST["color"]では受け取れていないのです。 form、select、input文、などを確かめましたが、ここに誤りはないようです。 プルダウンメニューが表示され、ページも飛ぶのですが、単純にPOST引き渡しができていないようなのです。 非常に困っております(泣) どなたかお詳しい方がいらっしゃいましたら、アドバイスをいただけませんでしょうか。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHP

    PHPで無駄なコーディングをしない為、ループでまわしたいのですが関数が入り、ややこしくなっています。どうしたらいいですか? <select name="nminute"> <option value="0" <?php if(strstr($nminute,'0')) echo"selected"; ?>>0</option> <option value="1" <?php if(strstr($nminute,'1')) echo"selected"; ?>>1</option> <option value="2" <?php if(strstr($nminute,'2')) echo"selected"; ?>>2</option> <option value="3" <?php if(strstr($nminute,'3')) echo"selected"; ?>>3</option> <option value="4" <?php if(strstr($nminute,'4')) echo"selected"; ?>>4</option> <option value="5" <?php if(strstr($nminute,'5')) echo"selected"; ?>>5</option> <option value="6" <?php if(strstr($nminute,'6')) echo"selected"; ?>>6</option> <option value="7" <?php if(strstr($nminute,'7')) echo"selected"; ?>>7</option> <option value="8" <?php if(strstr($nminute,'8')) echo"selected"; ?>>8</option> <option value="9" <?php

    • ベストアンサー
    • PHP
  • PHPを使ったPOSTについて教えてください。

    <body> <form action="" method="post"> <select id="list" name="list" > <option value="">選択してください</option> <option value="ichigo">いちご</option> <option value="orange">オレンジ</option> </select> <input type="text" size="30" id="word" name="word" > <input type="submit" value="検索"> </form> <?php $array = array(); $array['green'] = 'グリーン'; $array['red'] = 'レッド'; if (isset($_REQUEST['word'])) { $array ['key']=$_REQUEST['word']; } if (isset($_REQUEST['list'])) { $array ['List']=$_REQUEST['list']; } print_r($array); ?> </body> これを表示した場合、はじめのページでは Array ( [green] => グリーン [red] => レッド ) と表示されますが、フォームを実行すると、このように表示されます。 Array ( [green] => グリーン [red] => レッド [key] => [List] => ) これを、もしkeyやListの値が何も入力されなかった場合、listで言えば「選択してください」が選択されで実行された場合、[key] =>や [List] =>を表示しないと言うことはできますか? 例えばlistをデフォルトの「選択してください」のまま選択せず、テキスト欄に「テキスト」と入力したら、 Array ( [green] => グリーン [red] => レッド [key] => テキスト) とこのように[List] =>は省きたいです。 そのためにissetを使ったつもりでしたが、うまくいきませんでした。 どうしたら良いでしょうか?教えてください、よろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう