試した方法
●$_POSTが空の場合とそうじゃない場合のif文
if ( $_POST !=="" ){
●$_POSTがnullの場合とそうじゃない場合のif文
if ( $_POST ==null ){
●$_POSTがFALSEの場合とそうじゃない場合のif文
if ( $_POST ==FALSE ){
問題が発生しているソース:
php
1if($_POST!==""){2$sql='SELECT '.3' kyujin.id, jikyu, work_type, gyoukai, keisai_start, keisai_end, job_type.job_type, area.area'.4' FROM kyujin LEFT JOIN job_type '.5' ON kyujin.job_type=job_type.id '.6' LEFT JOIN area '.7' ON kyujin.area = area.id '.8' where kyujin.area = ? AND ( kyujin.job_type=? OR jikyu>=? OR work_type=? OR gyoukai=?)';9}10if($_POST==""){11$sql='select * from kyujin';12}13
ありがとうございます。
$sql = 箇所に入れてみたところ、
エラーが表示されました。
SELECT * FROM kyujin LEFT JOIN job_type ON kyujin.job_type=job_type.id LEFT JOIN area ON kyujin.area = area.id where true AND kyujin.area = ?
Warning: Invalid argument supplied for foreach() in /home/ubuntu/workspace/jobsearch/db_conect.php on line 165 Call Stack: 6.1029 237944 1. {main}() /home/ubuntu/workspace/jobsearch/db_conect.php:0
新しくphpファイルを作成し、動作を確認いたしましたが、
「SELECT FROM kyujin LEFT JOIN job_type ON kyujin.job_type=job_type.id LEFT JOIN area ON kyujin.area = area.id where trueAND false」
と表示され、検索結果も表示されません、
https://test170701-mh0926.c9users.io/jobsearch/test.php
where true AND false
これは、何も入力や選択しなかったときに何も表示しないための処理ですね
セレクトボックスを適当に選んだり、チェックボックスを適当にチェックしてサブミットすると
どうなりますか?
退会済みユーザー
2017/10/16 14:18
オフィスワークのチェックボックスを選択すると下記が表示されます。
SELECT FROM kyujin LEFT JOIN job_type ON kyujin.job_type=job_type.id LEFT JOIN area ON kyujin.area = area.id where trueAND ( false OR kyujin.job_type = ? )
追加した箇所がエラーとなり、表示されました。
Array ( ) Fatal error: Call to a member function prepare() on a non-object in /home/ubuntu/workspace/jobsearch/index.php on line 67 Call Stack: 5.1615 234208 1. {main}() /home/ubuntu/workspace/jobsearch/index.php:0
ありがとうございます。is not nullといれてみたのですが、全件表示も、選択した検索結果もされなくなりました、
$sql = 'SELECT '.
' kyujin.id, jikyu, work_type, gyoukai, keisai_start, keisai_end, job_type.job_type, area.area'.
' FROM kyujin LEFT JOIN job_type '.
' ON kyujin.job_type=job_type.id '.
' LEFT JOIN area '.
' ON kyujin.area = area.id '.
' where kyujin.area is not null AND ( kyujin.job_type is not null OR jikyu>=? OR work_type is not null OR gyoukai is not null )';