2016-05-17 13 views
-1

Kürzlich habe ich ein Problem, ein Projekt zu tun.Mehrdimensionale Daten zur Seite in CodeIgniter übergeben

Die Controller Seite

if ($result -> num_rows() ==1) { 
     $info['stu_data']=array(); 
     $i=0; 
     $rs= $this -> db -> query ($this -> User_model -> view_action()); 
     if ($rs -> num_rows() > 0) { 
      foreach ($rs -> result() as $rows) { 
      $info [$i]['stu_name'] = $rows -> stu_name; 
      $info [$i]['username'] = $rows -> username ; 
      $info [$i]['roll'] = $rows -> roll ; 
      $info [$i]['password'] = $rows -> password ; 
      $info [$i]['first'] = $rows -> first; 
      $info [$i]['second'] = $rows -> second ; 
      $info [$i]['third'] = $rows -> third; 
      $info [$i]['fourth'] = $rows -> fourth; 
      $info [$i]['fifth'] = $rows -> fifth ; 
      $i++; 

      } 

     } 

     //$data['data']=$this -> User_model -> view_action(); 
     //print_r($info); 
     $this -> load -> view ('add',$info); 
    } 

und die Aussicht Seite ist

<?php 
var_dump($stu_data); 
?> 

Aber ich in der add.php Seite hätte Kenntnis nehmend. Aber der Wert von $ info Variable auf der Controller-Seite wird in Ordnung sein.

Bitte lösen Sie dieses Problem.

+0

'$ info ['stu_data'] = array();' folglich ist $ stu_data' gleich leer Array – splash58

Antwort

1

$info['stu_data'] ist nicht bevölkert von Ihrem Fetch-Methode!

Probieren Sie $info ['stu_data'] statt nur $info aus, wenn Sie Ihre Ergebnisse von Ihrer Abfrage abrufen.

Darüber hinaus wie Rocket Hazmat erwähnt, können Sie Ihren aktuellen Abrufprozess vereinfachen, indem Sie keine Hilfsvariable verwenden ([$i] in Ihrem Fall) und ein Array im laufenden Betrieb erstellen.


optimierte Code

if ($rs -> num_rows() > 0) { 
     foreach ($rs -> result() as $rows) { 
     $info['stu_data'][] = array('stu_name' => $rows -> stu_name, 'username' => $rows -> username, 
     'roll' => $rows -> roll, 'password' = $rows -> password, 'first' => $rows -> first, 
     'second' => $rows -> second, 'third' => $rows -> third, 'fourth' => $rows -> fourth, 
     'fifth' => $rows -> fifth); 
     } 
+1

Es gibt keinen Grund, '$ i' hier zu verwenden. Sie könnten einfach '$ info ['stu_data'] [] = array ('stu_name' => $ rows-> stu_name, ...);'. –

+0

@RocketHazmat Sie haben Recht. Bearbeitete meine Antwort. – manniL

0

Verwenden Sie diesen Code für die Datenseite anzuzeigen vorbei. Es ist einfach zu bedienen und auch einfach zu verstehen.

if ($result -> num_rows() ==1) { 
    $i=0; 
    $rs= $this -> db -> query ($this -> User_model -> view_action()); 
    if ($rs -> num_rows() > 0) { 
     foreach ($rs -> result() as $rows) { 
     $data['stu_name'] = $rows -> stu_name; 
     $data['username'] = $rows -> username ; 
     $data['roll'] = $rows -> roll ; 
     $data['password'] = $rows -> password ; 
     $data['first'] = $rows -> first; 
     $data['second'] = $rows -> second ; 
     $data['third'] = $rows -> third; 
     $data['fourth'] = $rows -> fourth; 
     $data['fifth'] = $rows -> fifth ; 
     $info['stu_data'][$i]=$data; 
     $i++; 
     } 

    } 

    //$data['data']=$this -> User_model -> view_action(); 
    //print_r($info); 
    $this -> load -> view ('add',$info); 
} 

Ich hoffe, dass Sie Ihre Lösung bekommen.

Verwandte Themen