2016-12-07 1 views
1

Ici j'utilise la fonction explode pour exploser les données de datable et exploser ne fonctionne que lorsque row() donné ne pas obtenir lorsqu'il est retourné à result(). ici est ma tableexploser quand retourné à résultat() échoué

id name      tools_names        quantity 

9 T20   T20A,T20B,T20C,T20D,T20E,T20F,T20G,T20H,T20I,T20J  10 
10 krone tool  krone toolA,krone toolB,krone toolC,krone toolD,kr...  5 

Voici mon contrôle

$data['tools']=$this->Tools_model->view_available_tools(); 
    $data['toolss'] = explode(',',$data['tools']->tools_names); 
    $data['toolss'] = array_values($data['toolss']); 
    //return $data['toolss']; 
    var_dump($data['toolss']); 

ici est mon modèle

public function view_available_tools() 
{ 
    $this->db->order_by('id','desc'); 
    $query=$this->db->get('tools'); 
    return $query->result(); 
} 

quand je suis retourné les premières lignes tools_names valeurs est à venir, mais je veux obtenir tous tools_names de toutes les lignes. Cela ne vient pas s'il vous plaît aidez-moi à résoudre ce problème.

moi ressemble à ceci

<div class="form-group"> 
     <label for="tools" class="control-label">Tools:</label> 
     <select name="tools[]" class="form-control" multiple="multiple" required> 
     <option value="">please select</option> 
     <?php foreach($toolss as $row){?> 

     <option value="<?php echo $row;?>"><?php echo $row;?></option> 
     <?php }?> 
     </select> 
     </div> 

Répondre

1

Vous devez utiliser le retour $query->result_array(); ou équivalent

public function view_available_tools() 
{ 
    $this->db->order_by('id','desc'); 
    $this->db->where('status',1); 
    $query=$this->db->get('tools'); 
    return $query->result_array(); 
} 

EDIT:

S'il vous plaît mettre à jour votre contrôleur trop

$data['tools']=$this->Tools_model->view_available_tools(); 
foreach ($data['tools'] as $key=>$val) { 
    $data['toolss'][] = explode(',',$val['tools_names']); 
} 
$data['toolss'] = array_values($data['toolss']); 
var_dump($data['toolss']); 

Edit2:

Voir mise à jour,

<div class="form-group"> 
     <label for="tools" class="control-label">Tools:</label> 
     <select name="tools[]" class="form-control" multiple="multiple" required> 
     <option value="">please select</option> 
     <?php foreach($toolss as $key=>$val){ 
       foreach ($val as $key2=>$val2){ 
     ?> 

     <option value="<?php echo $val2;?>"><?php echo $val2;?></option> 
     <?php 
      } 
     } ?> 
     </select> 
     </div> 
+0

encore sa ne fonctionne pas –

+0

maintenant son entrée, mais je reçois une erreur à vue –

+0

j'avais a ajouté ma vue s'il vous plaît jeter un oeil –

1

Essayez ci-dessous le code :: -

<?php 
foreach ($data['tools']->tools_names as $tools_key => $tools_val) { 
    $data['toolss'][] = explode(',', $tools_val); 
} 
$data['toolss'] = call_user_func_array('array_merge', array_values($data['toolss'])); 
var_dump($data['toolss']); 
?>