2013-09-06 6 views
1

Je travaille sur un projet CodeIgniter où je dois changer le statut de l'enregistrement. En fait, je dois mettre à jour seulement les enregistrements dont l'id est/est dans la piqûre d'ids.mettre à jour plusieurs enregistrements dans codeigniter

Actuellement, un seul enregistrement est mis à jour avec mon code. Ma fonction de modèle est:

public function markUnRead() { 
    $ids = 1,2,3,4,5,6; 
    $update = array('status' => 0); 
    $this->db->where_in('id', $ids); 
    $this->db->update('tableName',$update); 

    if ($this->db->affected_rows() > 0) { 
     return true; 
    } else { 
     return false; 
    } 
} 

Quelqu'un m'aider s'il vous plaît.

Répondre

3

Le deuxième paramètre de la méthode where_in() doit être un array:

$this->db->where_in('id', array(1,2,3,4,5,6)); 

une raison quelconque, si le $ids est une chaîne comme "1,2,3,4,5,6", vous pouvez le faire fonctionner par:

$ids = explode(',', $ids); 
$this->db->where_in('id', $ids); 
+0

I fait le deuxième tableau de paramètres mais obtient toujours le même résultat. un seul enregistrement est mis à jour. – user2702406

+0

J'ai fait tout ce que vous avez dit mais n'a pas fonctionné. – user2702406

+0

oui frère ça marche maintenant, merci beaucoup, en fait mes changements n'étaient pas corrects. Vous répondez est absolument juste. Encore merci. – user2702406

Questions connexes