2017-04-11 2 views
1

Ich bin neu im Codeigniter und versuche, ein prozentuales Ergebnis in die Ansicht von Codeigntier für mein Projekt ausgegeben zu bekommen. Sobald ich das repariere, werden die Dinge viel reibungsloser. Er ist die Modellfunktion:php/mysql versucht, ein einzelnes Ergebnis in codeigniter auszugeben?

<?php 

public function _construct() 
{ 
    $this->load->database(); 
} 

public function percent_specilation1($numstudent) 
{ 
    $query = $this->db->query("SELECT * FROM Student WHERE Student.JRNOption ='1'"); 

    $numstudent = $query->num_rows()/25; 

    if($query->num_rows() > 0){ 
     return $numstudent; 
    } 
    return null; 
} 

?> 

Hier ist der Controller.

<?php 
class Statscontroller extends CI_Controller { 
public function _contruct(){ 
    parent::_construct(); 
    $this->load->model('Stats_model'); 
} 
public function index(){ 

    //echo "Various stats for the Journalism department:"; 
    $data['Test'] = $this->Stats_model->percent_specilation1($numstudent); 
    } 
    public function view($page = 'Statsview') 
     { 
      if (! file_exists(APPPATH.'views/pages/'.$page.'.php')) 
      { 
        // Whoops, we don't have a page for that! 
        show_404(); 
      } 

      //$data['title'] = ucfirst($page); 

      $this->load->view('templates/header',$data); 
    $this->load->view('Statscontroller/index',$data); 
    $this->load->view('templates/header'); 
    } 
?> 

    Here is the view 
    <html> 
    <h1> Various Statistics for the Journalism department</h1> 

    <?php 
    echo "Percent of students that are undecided:"; 
    echo $Test; ?> 
    </html> 

Was mache ich falsch? Ich habe versucht, es für über eine Stunde richtig zu machen, und ich möchte nur das einzige Ergebnis aus der Datenbankabfrage ausgeben. Jede Hilfe, die Sie zur Verfügung stellen können, wäre großartig. Bitte seien Sie respektvoll. Vielen Dank!

+1

https://www.codeigniter.com/user_guide/general/models.html – user4419336

+1

https://www.codeigniter.com/user_guide/general/controllers.html#class-constructors – user4419336

+0

Problem kann in Ihrem Index sein, vor und fügen Sie $ this-> view() hinzu, um Ihre erstellte Ansicht anzuzeigen. – wallacesilva09

Antwort

0

Versuchen Sie diesen Code, ich habe einige Code von Controller und Modell aktualisiert und Primärschlüssel von student Tabelle für student_id in Modellabfrage verwenden.

Update-Modell:

<?php 

public function _construct() 
{ 
    $this->load->database(); 
} 

public function percent_specilation1() 
{ 
    $query = $this->db->query("SELECT (SELECT COUNT(s2.student_id) 
      FROM Student s2 
      WHERE s2.JRNOption='1')*100/COUNT(s1.student_id) AS percentage 
      FROM Student s1"); 

    $result = $query->row_array(); 

    return $result['percentage']; 
} 

?> 

Aktualisiert Controller:

<?php 
class Statscontroller extends CI_Controller { 
    public function _contruct(){ 
     parent::_construct(); 
     $this->load->model('Stats_model'); 
    } 
    public function index(){ 

     //echo "Various stats for the Journalism department:"; 
     $data['Test'] = $this->Stats_model->percent_specilation1(); 
     $this->load->view('templates/header',$data); 
     $this->load->view('Statscontroller/index',$data); 
     $this->load->view('templates/header'); 
    } 


} 
?> 

Hope this Ihnen helfen.

Verwandte Themen