2012-01-25 17 views
1

我正在为一个网站,它在一个页面中工作的搜索栏,但另一个我不断收到无效的参数错误。希望所需的一切都在下面。我正在使用codeigniter。请帮忙。谢谢。无效的参数错误使搜索栏

//不工作//

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阵列中的数据。请确保您发送的$data阵列您到视图$this->load->view("view",$data);

除此之外,我可能想知道为什么你做你行的foreach控制器内,而不是只用在您的视图对象右

return $query->result(); 

鉴于

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

希望你看着办吧。 致以问候 乔纳斯

+0

它显示正确的事情。我解决了这个问题。我误解了雇用我的人要求我做的事情。他说搜索帐户名称。我是搜索显示名称,不断给我的错误。有点感到愚蠢。现在所有固定。谢谢您的帮助。 :) –