0

私のコードで私を助けてください私はphpとcodeigniterに慣れていないので、クエリの結果をビューに取得しようとしていますが、常にエラーが発生しました "致命的なエラー:非メンバー関数row()の呼び出し-object in」で、顧客 ID で顧客情報を検索し、その結果をビュー自体に取得しようとしています。

これはビューコードです

 <?php echo form_open('home/cari_id');
?>
<table width='34%' align='left'>
    <tr>
        <td width="54%" align="left">ID Pelanggan</td>

        <td width="36%">
            <?php echo form_input('id',set_value('id'));?>
            <?php echo form_error('id');?>
        </td>
        <td width="10%">
            <?php echo form_submit('submit','Cari');?>
        </td>
    </tr>
</table> 

<br /><br />

<table width="68%" align="left">
    <tr>
        <td width="17%" align="left">Nama</td>
        <td>
            <?php   
                $row = $record->row();
                $nama1 = array(
                         'name' => 'nama',
                         'maxlength' => '100',
                         'size' => '50',
                         'style' => 'width:120%');
                echo form_input($nama1,$row->nama);?>
            <?php echo form_error('nama');?>
        </td>
    </tr>
    <tr>
    <td align="left">Alamat</td>
    <td>
        <?php 
            $alamat1 = array(
                        'name' => 'alamat',
                        'rows' => '5',
                        'cols' => '3',
                        'style' => 'width:200%');
            echo form_textarea($alamat1,$row->alamat);?>
        <?php echo form_error('alamat');?>
    </td>
    </tr>
    <tr>
        <td align="left">Golongan</td>
        <td width='29%'>
            <?php 
                $gol1 = array(
                        'name' => 'gol',
                        'maxlength' => '100',
                        'size' => '50',
                        'style' => 'width:40%');
                echo form_input($gol1,$row->golongan);?>
            <?php echo form_error('gol');?>
        </td>
        <td width="10%" align="left">Tarif</td>
        <td width="44%">
            <?php 
                $tarif = array(
                'name' => 'tarif',
                'maxlength' => '100',
                'size' => '50',
                'style' => 'width:30%');
                echo form_input($tarif,$row->tarif);?>
            <?php echo form_error('tarif');?>
        </td>
    </tr>
</table>

ここに私のコードコントローラ

public function cari_id()
{
    $this->auth->restrict();
   // mencegah user mengakses menu yang tidak boleh ia buka
    $this->auth->cek_menu(4);

    $this->load->library('form_validation');

    $this->form_validation->set_rules('id', 'ID Pelanggan', 'trim|required');
    //$this->form_validation->set_rules('nama','Nama','trim'|'required');
    //$this->form_validation->set_rules('alamat','Alamat','trim'|'required');
    //$this->form_validation->set_rules('gol', 'Golongan', 'trim|required');
    //$this->form_validation->set_rules('tarif', 'Tarif', 'trim|required');
    $this->form_validation->set_error_delimiters(' <span style="color:#FF0000">', '</span>');
    $id_pel = $this->input->post('id') ;
    //$data1 = $this->usermodel->get_list_bayar_pel($id_pel);
    //$data=$data1->row();
    $data1 = $this->usermodel->get_list_bayar_pel($id_pel);
    $data['record'] = $query->result_array();
    $this->template->set('title','Input Pembayaran | POS Application');
    $this->template->load('template','admin/input_pembayaran',$data);

}

とモデルコード

function get_list_bayar_pel($id)
{
    $this->db->select('b.name as nama, b.address as alamat, c.nm_gol as golongan,d.rate_value as tarif');
    $this->db->from('account_t a, account_nameinfo_t b, golongan_t c, (select rate_value from rate_t a, golongan_t b where a.id_gol = b.id_gol) d');    
    $this->db->where('a.id_account = b.obj_id');
    $this->db->where('a.id_gol = c.id_gol');
    $this->db->where('a.id_account = "'.$id.'"');
    $result = $this->db->get();
    return $result;
    }

前にありがとう

4

4 に答える 4

0

コントローラでは、複数の行をフェッチしています

$data['record'] = $query->result_array();

そのはず

$data['record'] = $query->row();

そしてビューで$row=$record;を与えます。$ row = $ record-> row();の代わりに

于 2012-07-31T09:00:44.380 に答える
0

あなたのコードによると、ビューでデータを取得するためにrow()関数を使用しましたが、これを使用してコントローラーでフェッチされました:

 $data['record'] = $query->result_array();


それらの1つを(コントローラーで)使用するだけです:

$data['record'] = $query->result_array();

また

$data['record'] = $query->row();

そして、ビューで配列を処理します

それが役に立てば幸い :)


注:
-result_array()を使用してデータを配列に取得することをお勧めします

于 2012-07-31T09:22:03.907 に答える
0

これをコントローラーに書き込みます

$data['record'] = $query->row();

ビューでphpコードの書き込みを削除します

 <?php   

                $nama1 = array(
                         'name' => 'nama',
                         'maxlength' => '100',
                         'size' => '50',
                         'style' => 'width:120%');
                echo form_input($nama1,$record->nama);?>
            <?php echo form_error('nama');?>

モデルで

$result = $this->db->get('tablename')->row();
于 2012-07-31T08:51:40.313 に答える
0

$record は単一の行を返さず、コレクションを返します。current($record)->row() を使用するか、単一の行をフェッチします。

于 2012-07-31T08:53:07.880 に答える