2010-08-07 8 views
1

SQL 데이터베이스에서 객체를 가져 와서 데이터를 사용자에게 반환하기 전에 함수 집합에 대해 객체를 처리하는 프로그램을 만들고 싶습니다.SQL 데이터베이스에서 데이터를 가져 오는 프로세스

그것은 다음과 같이 작동은 :

  1. 사용자는 자바 스크립트 형태의 날짜 범위를 지정합니다.
  2. 날짜 범위는 sql 쿼리로 변환하는 서버의 PHP 파일로 전송됩니다.
  3. sql 쿼리는 데이터베이스에서 범위와 일치하는 모든 데이터를 가져오고 각 일치하는 항목과 관련 정보를 임시 PHP 파일 (아래 예제 참조)에 클래스로 저장합니다.
  4. 그러면 주 PHP 프로그램은 함수 세트에 대해 임시 PHP 파일의 각 클래스를 처리하고 정보를 사용자에게 리턴합니다.

예 일시적으로 PHP 파일 :에 대한 클래스를 처리하는 기능의

class ice_cream 
{ 
     $temperature = 0; 
     $texture = 'soft'; 
} 

class hard_candy 
{ 
    $temperature = 20; 
    texture = 'hard'; 
} 

예 :

function will_it_break_dentures($class_name) 
{ 
    //$class_name is passed to the function based on the classes available in temp file 
    $food_type_class = new $class_name(); 
    $damage_potential_temperature = $food_type_class->temperature; 
    $damage_potential_temperature = $food_type_class->texture; 

    if($damage_potential_temperature >= 15) && ($damage_potential_texture === 'hard') 
    { 
     print("Don't eat it"); 
    } 

} 

는 데이터베이스에서 데이터를 끌어 오기보다 효율적인/보안 방법이 있나요 함수 집합에 대해 처리할까요? 처리를 위해 데이터베이스에서 데이터를 가져 오는 표준 방법입니까? 항목 # 3은 용의성이있는 것처럼 보이지만 내가 생각할 수있는 최선입니다. 모범 사례에 관한 관련 정보 리소스는 높이 평가됩니다.

+2

'각 객체를 임시 PHP 파일에 PHP 클래스로 저장합니다. '- 뭐라고 말할까요? 그게 무슨 뜻이야? – Mchl

+0

나는 클래스가 변수 집합을 보유하고 클래스 이름과 연결할 수있는 것을 좋아한다. 데이터베이스는 PHP 클래스를 저장합니다. sql 쿼리는 데이터베이스에서 클래스를 가져오고 (PHP는 객체라고 부름) 메인 PHP 프로그램이 처리 할 수있는 임시 PHP 파일을 만듭니다. 나는이 모든 잘못을 저지르고 있을지 모른다. – JMC

+0

그래, 너는 ... 우선 클래스! = 객체. 그리고 만약 당신이 데이터베이스에서 객체를 가져오고 싶다면, mysql 확장은 mysql_fetch_object() 함수를 제공한다. 개인적으로 나는이 접근 방식의 팬이 아니지만 ... – Mchl

답변

2

클래스 정의는 값이 아니라 개체의 속성을 정의해야합니다. 런타임시 동적으로 정의하지 말고 정적으로 정의해야합니다. 런타임에이 클래스의 인스턴스를 만들고 각 인스턴스의 데이터를 채 웁니다. 이 같은

시도 뭔가이 같은

class Food { 
    var $name; 
    var $temp; 
    var $texture; 

    // Constructor 
    public function food($name, $temp, $texture) { 
     $this->name = $name; 
     $this->temp = $temp; 
     $this->texture = $texture; 
    } 

    public function breaksDentures() { 
     if($this->temp >= 15) && ($this->texture === 'hard') 
     return true; 
     else 
     return false; 
    } 
} 

그리고 그것을 사용 :

function processFoods($daterange) { 
    $query = build_query_from_daterange($daterange); 
    $result = mysql_query($query); 

    while($row = mysql_fetch_assoc($result)) { 
     $food = new Food($row['name'], $row['temp'], $row['texture']); 
     // Now $food is an instance of the Food class populate with the values 
     // from the db, e.g., 'ice cream', 0, 'hard'. 

     if $food->breaksDentures() { 
     print("Don't eat it"); 
     } 
    } 
} 

P.S. 개체 지향 개념을 닦을 수 있습니다. 귀하의 질문은 좋은 질문이지만 OO 기본에 대한 혼란을 나타냅니다.

+0

혼란을 인식하고 자세한 사례를 제공해 주셔서 감사합니다. 이것은 내가 올바른 길을 시작했다. – JMC

관련 문제