2014-07-22 10 views
0

3x3 타일 레이아웃의 제품 범주를 표시하는 웹 사이트 페이지가 있습니다.PHP 데이터베이스 배열의 특정 순서

현재 9 개의 타일을 표시하기 위해 데이터베이스에서 별개의 제품 범주를 가져 와서 반환 된 배열을 반복합니다.

이것은 모두 정상적으로 작동하지만 타일의 현재 순서는 알파벳 순서입니다. 고객은 매우 구체적인 순서로 제품을 가져 오라고 요청했습니다.이를 달성하는 방법에 대해 혼란스러워합니다.

현재 주문 :

Agri, Bespoke, Dairy, Farm, Forest, General, Grain, One off, Red Meat 

주문 구함 :

Dairy, Red Meat, Forest, Grain, General, Farm, Bespoke, One off, Agri 

누군가가 이것을 달성하는 데 필요한 것이 무엇인지에 대한 올바른 방향으로 날 지점 수 있습니까?

+2

올바른 순서로 DB에 열을 추가하십시오. 그 열을 기준으로 주문하십시오. – WillardSolutions

+0

저는 Silverstripe CMS/Framework를 사용하고 있으므로 열을 추가하는 것은 그리 간단하지 않습니다. 또한 말할 수있는 카테고리 테이블이 없습니다. 제품 테이블에는 카테고리 열이 있습니다. –

답변

0

필자는 별도로 언급하지 않는 한 데이터베이스가 추가 된 순서대로 데이터를 반환한다는 것을 알고 있습니다.

쿼리 끝에 ORDER BY X을 추가하여 정렬 할 수 있습니다. 해당 주문을 줄 수있는 열이없는 경우 그러한 열을 추가 할 수 있습니다. 그래서

SELECT DISTINCT Category FROM Products 
ORDER BY 
(Category='Dairy') DESC, (Category='Red Meat') DESC, (Category = 'Forest') DESC 

...과 :

0

나는 당신이 정말로 선호하는 방법이 될 것입니다 올바른 순서로 새 열을 추가 할 수없는 경우, 당신은 같은 것을 할 수있는 것 같아요. 그것은 정말 이상한 방법이지만, 일을 끝내는 것 같습니다.

관련 문제