2016-12-05 142 views
-1

這是我的問題:錯誤笨缺少參數

A PHP Error was encountered

Severity: Warning
Message: Missing argument 1 for TokoSaya::user(), called in /var/www/html/system/core/CodeIgniter.php on line 360 and defined
Filename: controllers/tokosaya.php
Line Number: 32

A PHP Error was encountered

Severity: Notice
Message: Undefined variable: id
Filename: controllers/tokosaya.php
Line Number: 34

A Database Error Occurred

Error Number:
ERROR: syntax error at or near "$" LINE 1: SELECT * FROM usr.persons WHERE id = $id ^
SELECT * FROM usr.persons WHERE id = $id
Filename: /var/www/html/models/m_user.php
Line Number: 18

這是我的控制器:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class TokoSaya extends CI_Controller { 

/** 
* Index Page for this controller. 
* 
* Maps to the following URL 
*  http://example.com/index.php/welcome 
* - or - 
*  http://example.com/index.php/welcome/index 
* - or - 
* Since this controller is set as the default controller in 
* config/routes.php, it's displayed at http://example.com/ 
* 
* So any other public methods not prefixed with an underscore will 
* map to /index.php/welcome/<method_name> 
* @see http://codeigniter.com/user_guide/general/urls.html 
*/ 
function __construct() 
{ 
    parent::__construct(); 
    $this->load->library('form_validation'); 
    $this->load->helper(array('form', 'html', 'file','string')); 
    //$this->load->library('grocery_CRUD'); 
    //$this->load->model('view'); 
    $this->load->model('m_user'); 
    $this->load->model('amproker'); 
    //$this->data['modul'] = 'Admin'; 
} 

function user($id) 
{ 
    $data['user'] = $this->m_user->GetDetailUser($id); 
    //$data['UserLogin'] = $this->m_user->GetUserLogin($data['user']->person) 
    $data['menu'] = $this->amproker->CategoriesMenu(0,$h=""); 
    $data['page'] = 'user'; 
    $this->load->view('templates_user', $data); 
} 

} 

/* End of file welcome.php */ 
/* Location: ./application/controllers/welcome.php */ 

這是我的模型:

<?php 

/** 
* 
*/ 
class M_User extends CI_Model 
{ 

function __construct() 
    { 
     // Call the Model constructor 
     parent::__construct(); 
     //$this->load->library(array('My_phpmailer', 'encrypt')); 
    } 

function GetDetailUser($id) 
{ 
    $query=$this->db->query("SELECT t0.*, t1.username, t1.person FROM usr.persons t0 RIGHT JOIN usr.logins t1 ON t0.id = t1.person WHERE t1.person = $id"); 
      return $query->row(); 

} 

//function GetUserLogin($user) 
//{ 
    //$query=$this->db->query("SELECT * FROM usr.logins") 
    //return $query->result(); 
//} 

} 

?> 
+0

你怎麼打電話給你的控制?確保您在URL中傳遞用戶標識。防爆。 'HTTP://localhost/..../tokosaya/user/ {$ ID}' – Naga

回答

0

從你的錯誤的頂部工作.. 。

您的方法用戶($ id)正在等待一個參數,顯然你沒有提供它。

所以你寫這個的方式,你需要在url上提供這個參數,例如localhost/tokosaya/user/1,在這種情況下,1在你的用戶方法中爲$ id提供一個值1。

但是,你需要確保該參數確實是一個整數,並把一些思想到如何處理一個整數(ID),不返回結果等等