2014-09-24 2 views
0

Codeigniter를 사용하여 데이터베이스에서 데이터를 생성하는 간단한 간단한 코드를 만들었습니다. 데이터가 내 시각에 표시되고 있지만 문제가 있습니다. 각 레코드는 9 번 생성되었습니다. 예 이름이 John Doe 인 이메일 ID가 데이터베이스인데 [email protected], 생년월일 : xxxx-xx-xx는 9 번 반복되었습니다.누구나이 foreach 루프에 문제가 있습니까?

<?php 

class Transaction extends CI_Model 
{ 
    function getdata() 
    { 
     $this->db->select('name, email, schools_name'); 
     $this->db->from('employee, schools'); 
     $r = $this->db->get(); 
     return $r; 
    } 
} 

컨트롤러 :

<?php 

class Layer extends CI_Controller 
{ 
    function index() 
    { 
     $this->load->model('transaction'); 
     $data['data'] = $this->transaction->getdata(); 
     $data['title'] = 'This is title'; 
     $this->load->view('test', $data); 
    } 
} 

그리고보기 :

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Check</title> 
    </head> 
    <body> 
     <?php 
      echo heading($title, 1); 
      foreach (($data->result()) as $row) 
      { 
       echo '<p>Name: ' . $row->name . 'and <br> Email: ' . $row->email . '<br> Schools: '.$row->schools_name.'</p>'; 
      } 

     ?> 
    </body> 
</html> 

어쩌면 내가이의 원인이 무엇인지 난 그냥 캔트 발견 너무 피곤 해요 여기

모델이다. : D

많은 감사,

편집 :

array(1) { [0]=> object(stdClass)#20 (3) { ["name"]=> string(16) "Braxton Amundson" ["email"]=> string(18) "[email protected]" ["schools_name"]=> string(21) "Penn State University" } } 
+0

데이터 란 무엇입니까? 그것은 배열 또는 객체입니까? 컨트롤러의 배열처럼 사용하고 있지만 뷰의 객체입니다. – AgmLauncher

+0

괄호 안에'$ data-> result()'가있는 이유는 무엇입니까? – Anthony

+0

이게 뭐지?'$ this-> db ('$ data-> result()'는 왜'$ data-> result – Ghost

답변

1

난 당신이 허용되지 않는 두 개의 테이블에서 선택하려고 생각 : 제한 1 위해서 var_dump 결과

$this->db->from('employee, schools'); 

선택한 필드를 기반으로 올바른 (하나의) 테이블을 선택하도록 코드를 업데이트해야합니다. 두 테이블을 모두 사용하려면 (내부 조인)과 같은 (조인) 전략으로 이동해야하며 두 테이블을 특정 키 또는 값으로 연결해야합니다.

$this->db->join(); 

(Here) 설명이다 :

당신은을 통해을 (가입)를 사용할 수 있습니다. 희망이 당신이 도움이.

+0

저는 "SELECT employee.name, employee.email, schools.schools_name FROM employee, schools"쿼리를 사용하지만 이전에는 AR을 사용하지 않고 쿼리를 사용합니다. –

+0

@ Nucleo1985 당신의 논리가 완전히 틀렸다고 생각합니다. 문제를 해결하는 좋은 방법은 참여 개념을 자신의 측면에서 잘 이해하는 것입니다. 내 대답은 ActiveRecord를 사용하는 쿼리가 잘못되었습니다.귀하의 의견에 언급 된 귀하의 쿼리가 귀하의 기준과 일치한다고 생각되는 경우를 대비하여 SQL ($ this-> db-> query ("Your Sql here"));)로 넣는 것을 선호합니다. – Hatem

+0

네가 맞아, 나는 지금 조인하고 그 일을 사용한다. $ this-> db-> select ('*'); $ this-> db-> from ('schools'); $ this-> db-> join ('employee', 'employee.name = schools.schools_name', 'right'); return $ this-> db-> get(); –

관련 문제