2012-01-25 10 views
1

サイトの検索バーを1つのページで動作させていますが、もう1つは無効な引数エラーが発生しています。うまくいけば、必要なものはすべて次のとおりです。私はcodeigniterを使用しています。助けてください。ありがとう。無効な引数エラーの検索バーの作成

// doesntの仕事//

private function getUsers() { 
    $search = $this->input->post('search'); 

    if($search && filter_var($search, FILTER_VALIDATE_EMAIL)) { 
     $where = 'WHERE source_adusers.ad_Email="'.$search.'"'; 
    } else if ($search) { 
     $where = "WHERE source_adusers.ad_account='".$search."'"; 
    } else if (!$search) { 
     $where = ''; 
    } 

    $query = $this->db->query('SELECT *, COUNT(rollout_systems.EAM_USER) as systems FROM source_adusers 
     LEFT JOIN rollout_systems ON rollout_systems.EAM_User = source_adusers.ad_account '.$where.' GROUP BY source_adusers.ad_account LIMIT 0,50'); 

    $users = null; 

    foreach ($query->result() as $row) { 
     $data['account'] = $row->ad_account; 
     $data['email'] = $row->ad_Email; 
     $data['name'] = $row->ad_DispName; 
     $data['systems'] = $row->systems; 

     $users[] = $data; 
    } 

    if(isset($this->data['users'])) { 
     $this->data['users'] = $users; 
    } else { 
     $this->data['users'] = $users; 
    } 
} 

//ん作業//

private function getSystems() { 
    $search = $this->input->post('search'); 

    if ($search) { 
     $where = 'WHERE disc_systempool.ad_name="'.$search.'"'; 
    } else { 
     $where = ''; 
    } 

    $query = $this->db->query('SELECT *, COUNT(rollout_systems.sys_name) as scopes FROM disc_systempool LEFT JOIN rollout_systems 
     ON rollout_systems.sys_name=disc_systempool.ad_name '.$where.' GROUP BY disc_systempool.ad_name LIMIT 0,50'); 

    foreach ($query->result() as $row) { 
     $data['model'] = $row->eam_Model; 
     $data['account'] = $row->ad_name; 
     $data['city'] = $row->eam_City; 
     $data['scopes'] = $row->scopes; 
     $data['search'] = $this->input->post('search'); 

     $systems[] = $data; 
    } 

    if(isset($this->data['systems'])) { 
     $this->data['systems'] = $systems; 
    } else { 
     $this->data['systems'] = $systems; 
    } 
} 

//私はエラーを取得していますどこ//

<tbody> 
    <? foreach ($users as $user) { ?>      <---- Line 18 
    <tr> 
     <td class="center"><?=$user['account']?></td> 
     <td><?=$user['name']?></td> 
     <td><?=$user['email']?></td> 
     <td class="center"><?=$user['systems']?></td> 
     <td class="center"><a href="#">View Details</a></td> 
    </tr> 
    <? } ?> 
</tbody> 

//エラー//

A PHP Error was encountered 
Severity: Warning 
Message: Invalid argument supplied for foreach() 
Filename: headquarters/users.php 
Line Number: 18 
+0

エラーは、 '$ users'が設定されていないことを示しています。 getusersメソッドのループの後に 'var_dump($ users)'を実行するとどうなるでしょうか?私の推測は、SQL文があなたが期待しているものを返さないということです。 – swatkins

+0

引き続き無効な引数エラーが表示されます。あなたは何がSQLと間違っていると思いますか? –

+0

また、私はサーバーのデータベース上のSQLステートメントをテストし、それは働いた。 –

答えて

0

これは正しいことを示しています。私は問題を解決しました。私は、私を雇った人が私に求めたことを誤解しました。彼は検索アカウント名を言った。私はエラーを与え続けた検索表示名でした。

-1

var_dump($data);をあなたの視野の中に入れてみてください。空の場合。あなたのコントローラーで同じことを印刷してください。 $dataアレイ内のデータが表示されている場合。あなたの代わりにちょうどあなたのビューで

をオブジェクトを使用してのコントローラの内部で、あなたの行にforeachのか、なぜあなたはそれに加えてビュー $this->load->view("view",$data);

にあなたと$data配列を送信していることを確認してください、私は不思議に思われるかもしれません

return $query->result(); 
ビューで

foreach($users as $user) { print $user->account; } 

あなたがそれを把握願っています。 よろしくお願いいたします ジョナス

+0

これは正しいことを示しています。私は問題を解決しました。私は、私を雇った人が私に求めたことを誤解しました。彼は検索アカウント名を言った。私はエラーを与え続けた検索表示名でした。キンダーは馬鹿だと感じる。すべて今固定されています。助けてくれてありがとう。 :) –

関連する問題