2012-01-25 25 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

它顯示正確的事情。我解決了這個問題。我誤解了僱用我的人要求我做的事情。他說搜索帳戶名稱。我是搜索顯示名稱,不斷給我的錯誤。有點感到愚蠢。現在所有固定。謝謝您的幫助。 :) –