2013-02-01 14 views
5

La query Mysql codeigniter non funziona correttamente. Supponiamo che se tabella mysql si presenta così:Codeigniter mysql dove non uguale alla query

user_id|user_name 
     1|john 
     2|alex 
     3|sam 

Qui nome_utente è unico

La seguente query deve restituire falso se user_name = john e user_id = 1 e vero se si dice user_name = john e user_id = 2.

$this->db->get_where('user', array('user_name' => $name,'user_id !=' => $userid)); 

ma restituisce vero nel caso user_name = john e user_id = 1.

Qualcuno può suggerirmi un modo alternativo di interrogare non uguale a.

di stampa ($ this-> db-> last_query()) dà:

SELECT * FROM (utente) WHERE user_name = 'John' E ID_utente = '1'

+0

Qualche possibilità di avere altri utenti con nome John? Ciò restituirebbe anche vero. – sgeddes

+0

nessun nome utente è univoco – Avinash

+1

prova questo e controlla quale query è stata eseguita stampa "Query SQL:". $ This-> db-> last_query(); –

risposta

4

Perché non si usa! simple $this->db->query('your query');

+0

sembra che questo sia l'unico modo. – Avinash

+0

suggerirei di utilizzare le procedure in quanto sono pre-elaborate e rispettate e utilizzare $ this-> db-> query ('call yourprocedure (' your parms ')'); – rohitarora

1

Si può andare anche follwoing. Esso funziona per me

$total = 5; 
$CI = get_instance(); 
$CI->load->database(); 
$CI->db->order_by('id','asc'); 
$topusers = $CI->db->get_where('users',array('user_type != 1 && `status` =' => 1),$total,0); 
echo $CI ->db ->last_query(); 
die; 

e se ancora non funziona per voi può andare con @rohit suggeriscono: $ this-> db-> query ('query');

1

semplicemente provare questa

$this -> db -> where('invitee_phone !=', $user_phone); 
0

Tipo 1:

utilizzando ->where("column_name !=",$columnname) va bene per una colonna.

Ma se si desidera controllare a più colonne, è necessario formare un all'interno dove clausola array.

Ti piace questa

$whereArray = array(
       "employee_name" => $name, 
       "employee_id !=" => $id, 
     ); 

$this->db->select('*')->from('employee')->where($whereArray); 

Tipo 2:

possiamo solo scrivere esattamente quello che vogliamo all'interno dove.

Come

$thi->db->where(("employee_id =1 AND employee name != 'Gopi') OR designation_name='[email protected] clan'"); 

tipo 2 è buono per lavorare con la combinazione di query, voglio dire paranthesis "()"

0

è possibile seguire questo codice:

$query = $this->db->select('*')->from('employee')->where('user_name', $name)->where('user_id !=', $userid)->get(); 
$last_query = $this->db->last_query(); 
$result = $query->result_array(); 

se passi $ name = 'john' e $ userid = '1', restituisce un array vuoto.

Problemi correlati