2014-01-10 2 views
0

나는 책을 위해 아래 수업을 가지고있다. 현재 ID로 데이터베이스에서 책을 검색하는 한 가지 방법이 있습니다. 분명히 다른 방법은 개체 목록을 얻는 방법

class Book { 

Public $id 
public $name; 
public $price; 
public $isbn; 

public function getBook($id) { 

    $sql = 'SELECT id, name, price, isbn FROM book WHERE id = ' . (int) $id; 

    $row = /* DB functions here to get a matching row */ 

    $this->name = $row['name']; 
    $this->price = $row['price']; 
    $this->isbn = $row['isbn']; 
    return TRUE; 
} 
} 

여기 내 질문 등, 책을 삭제 새로운 책을 저장하기 위해 추가 할 수 있고, 뭔가 내가 하단에 도착 본 적이 없습니다. 모든 책 또는 문자 "A"로 시작하는 모든 책의 목록을 얻으려면 어떻게합니까?

명확히하기 위해 데이터베이스를 쿼리하고 결과 집합을 반복하는 방법을 알고 있습니다. 각 결과에서 하나의 책 인스턴스를 만들기 위해 생성자를 위 클래스에 추가 할 수 있습니다. 하지만 내 "searchBooks"방법은 어디로 가야합니까? 그것은 Book 클래스에 속해야합니까? 또는 검색 방법이 아마도 BookShop이라는 완전히 다른 클래스에 속해야합니까?

나는 이것을 올바르게 설명했으면한다. 개체가 단 하나의 기본으로 다루어지는 예가 많이 있지만 개체 목록이나 컬렉션을 어디에서 어떻게 만들어야하는지 짐작할 수 없습니다.

+3

귀하의 예는 기본적으로 단일 책임 원칙을 위반합니다. 요약하면 : 모델 (책)과 데이터베이스에 액세스하는 클래스 (BookRepository)에서 책 제목 등을 쿼리하는 함수를 사용할 수 있습니다. – nietonfir

답변

-1

모든 책 또는 문자 "A"로 시작하는 모든 책의 목록을 얻으려면 어떻게해야합니까?

모든 책 : SELECT id, name, price, isbn FROM book

일 모든 시작 책 :

SELECT id, name, price, isbn FROM book WHERE name LIKE 'A%'

OR : 방법이 갈 것 곳으로

SELECT id, name, price, isbn FROM book WHERE SUBSTRING(name, 1, 1) = 'A'

봐 "저장소"- 책은 꼬마 요정.

+0

왜 downvotes입니까? – Jessica

관련 문제