2012-12-26 38 views
0

我在CI视图页面中获取错误,因为为foreach()提供了无效参数。 这是我的代码:在codeigniter(皇冠)中为foreach提供的无效参数



我的数据库:

**id_penyewa       
nama_penyewa         
alamat        
no_telp** 

(Jaminan表)

**id_penyewa       
jenis_jaminan 
ket_jaminan** 
在控制器

(Penyewa表)(penyewa.php )

function Penyewa() 
{ 
    parent::Controller(); 
    $this->load->database(); 
    $this->load->model('model_tampil'); 
} 

function tambah() 
{ 
    $ck=$this->input->post('id_penyewa'); 
     if($ck!='') 
     { 
      $this->model_tampil->insertPenyewa(); 
     } 
    $this->load->view('tampilpenyewa'); 
} 

function sukses() 
{ 
echo "Data berhasil di input!"; 
?> 
<br /> 
<a href="<?php echo base_url();?>/index.php/login/input_penyewa">Tambah Data</a> 
<br /> 
<a href="<?php echo base_url();?>/index.php/login/tampil_penyewa">Lihat Data</a> 
<?php 
} 

在模型(model_tampil.php)

function getPenyewa(){ 
    $this->db->select('*'); 
    $this->db->from('penyewa'); 
    $this->db->join('jaminan','jaminan.id_penyewa = penyewa.id_penyewa'); 
    $q = $this->db->get(); 
    $rows = $q->num_rows(); 
    $q_result = $q->result(); 

    if($rows>0){ 
     foreach($q_result as $row){ 
      $data[] = $row; 
     } 
     return $data; 
    } 
} 
function insertPenyewa() 
{ 
    /*$this->db->trans_start(); 

    $this->db->query('INSERT INTO penyewa VALUES($id_penyewa, $nama_penyewa, $alamat, $no_telp, $jenis_jaminan)'); 
    $table1_id = $this->db->insert_id(); 

    $this->db->query('INSERT INTO jaminan VALUES(id_penyewa,' . $table1_id .',jenis_jaminan)'); 

    $this->db->trans_complete(); */ 

    $this->id_penyewa=$this->input->post('id_penyewa'); 
    $this->nama_penyewa=$this->input->post('nama_penyewa'); 
    $this->alamat=$this->input->post('alamat'); 
    $this->no_telp=$this->input->post('no_telp'); 
    $this->jenis_jaminan=$this->input->post('jenis_jaminan'); 

    $this->db->insert('penyewa',$this); 
      redirect('penyewa/sukses'); 
} 

在次(tampilPenyewa.php)

<center> 
<h3>Tabel data Penyewa</h3> 
<table border="1"> 
<tr align="center" bgcolor="#33CC99"> 
<td width="100">ID Penyewa</td> 
<td width="200">Nama Penyewa</td> 
<td width="120">Alamat</td> 
<td width="150">Nomor Telepon</td> 
<td width="150">Jenis Jaminan</td> 
<td>Tindakan Lanjut</td> 
</tr> 

<?php foreach ($records as $row) : ?> 
<tr height="35"> 
<td>&nbsp;<?php echo $row->id_penyewa; ?></td> 
<td>&nbsp;<?php echo $row->nama_penyewa; ?></td> 
<td>&nbsp;<?php echo $row->alamat; ?></td> 
<td>&nbsp;<?php echo $row->no_telp; ?></td> 
<td>&nbsp;<?php echo $row->ket_jaminan; ?></td> 
<td></td> 
</tr> 
<?php endforeach; ?> 
</table> 
<br /> 

<a href="<?php echo base_url();?>/index.php/login/input_penyewa">Tambah Data</a> 

和在视图中太(inputpenyewa .php)

<center> 
<?php 

$this->load->library('validation'); 
$id_penyewa=array(
       'name'   => 'id_penyewa', 
       'id'   => 'id_penyewa', 
       'value'   => '', 
       'maxlength'  => '100', 
       'size'   => '50', 
       'validation' => "required"); 
$nama_penyewa=array(
       'name'   => 'nama_penyewa', 
       'id'   => 'nama_penyewa', 
       'value'   => '', 
       'maxlength'  => '100', 
       'size'   => '50', 
       'validation' => "required"); 
$alamat=array(
       'name'   => 'alamat', 
       'id'   => 'alamat', 
       'value'   => '', 
       'maxlength'  => '500', 
       'size'   => '', 
       'validation' => "required"); 
$no_telp=array(
       'name'   => 'no_telp', 
       'id'   => 'no_telp', 
       'value'   => '', 
       'maxlength'  => '100', 
       'size'   => '50', 
       'validation' => "required"); 
$ket_jaminan=array(
       'name'   => 'jenis_jaminan', 
       'id'   => 'jenis_jaminan', 
       'value'   => '', 
       'maxlength'  => '100', 
       'size'   => '50', 
       'validation' => "required"); 

$this->load->helper('form'); 
echo validation_errors(); 
echo form_open('penyewa/tambah'); 
echo '<center><h3>Input Data Penyewa</h3></center>'; 
echo "<table border='0' class='tabledetail' align='center'>"; 
echo 
    "<tr>"."<td>".form_label('ID')."</td>"."<td>".form_input('id_penyewa')."</td>"."</tr>"; 
echo 
    "<tr height=50>"."<td>".form_label('Nama Penyewa')."</td>"."<td>".form_input('nama_penyewa')."</td>"."</tr>"; 
echo 
    "<tr height=220>"."<td>".form_label('Alamat')."</td>"."<td>".form_textarea('alamat')."</td>"."</tr>"; 
echo 
    "<tr>"."<td>".form_label('No Telp')."</td>"."<td>".form_input('no_telp')."</td>"."</tr>"; 
echo 
    "<tr height=220>"."<td>".form_label('Jaminan')."</td>"."<td>".form_textarea('jenis_jaminan')."</td>"."</tr>"; 
echo 
    "<tr height=50>"."<td colspan=2 align='center'>".form_submit('mysubmit','Simpan')."</td>"."</tr>"; 
echo "</table>"; 
echo form_close(); 
?> 
<a href="<?php echo base_url();?>/index.php/login/tampil_penyewa">Lihat Data</a> 


好吧,我很抱歉,如果我的问题是非常多,多.. 谢谢:)

更新:

好,我这样做,但没有结果,我的网页错误再次..

和,我想再次问,model_tampil-> getPenyewa()??中的任何错误?

这是脚本:

function getPenyewa(){ 

    $this->db->select('*'); 
    $this->db->from('penyewa'); 
    $this->db->join('jaminan','jaminan.id_penyewa = penyewa.id_penyewa'); 
    $q = $this->db->get(); 
    $rows = $q->num_rows(); 
    $q_result = $q->result(); 

    if($rows>0){ 
     foreach($q_result as $row){ 
      $data[] = $row; 
     } 
     return $data; 
    } 
} 

我想将数据输入到2台在我的本地主机,从第1页,inputpenyewa.php ..

+0

请张贴只是相对的代码而不是整个事情 –

+0

哪里是你'$ records'一套....我敢打赌,这里的问题是造成由'$ records' ... – bipen

回答

0

您没有任何数据传递到视图。

$this->load->view('tampilpenyewa'); 

将此行更改为此。

$this->load->view('tampilpenyewa',$data); 

您必须从数据库中获取值。所以这条线之前,从数据库为

$data['records'] = $this->model_tampil->getPenyewa(); 

获得价值,然后再加载视图上面,像

$this->load->view('tampilpenyewa',$data); 

希望这有助于

问候

iijb

+0

我认为getPenyewa函数()中存在错误,因为此刻我不给JOIN脚本,所有输入都成功地将数据输入到一个表中。并且,在给JOIN(因为我想将数据插入2个表格)之后,突然出现错误。 –

0

在控制器的tambah函数中,您直接调用视图文件而不给出任何da TA吧..

做这样的..

function tambah() 
{ 
    $ck=$this->input->post('id_penyewa'); 
     if($ck!='') 
     { 
      $this->model_tampil->insertPenyewa(); 
     } 
    $records = $this->model_tampil->getPenyewa(); // The array returned from your whatever model function 
    $this->load->view('tampilpenyewa',array('records' => $records)); 
}