2013-04-28 4 views
0

다음 SELECT 문을 사용하여 ASC 또는 DESC로 결과를 정렬하려고합니다.PHP SELECT 문 group by

$query = "SELECT filmcode, FilmName, Genre FROM film WHERE Genre = '".$genre_value."' ORDER by '".$order_value."' ASC"; 

테이블이 제대로로드되고 있지만 특성이 정렬되지 않았습니다. ASC에서 누군가가 select 문에 잘못된 점을 찾도록 도와 줄 수 있습니까?

+0

그런데 'ASC'가 기본값입니다. – Ryan

답변

1

열 이름이 작은 따옴표로 묶여 있기 때문에 명령문이 레코드를 올바르게 정렬하지 않습니다. 따옴표를 제거하고 확실히 작동합니다 : 열 이름이

$query = "SELECT filmcode, FilmName, Genre FROM film WHERE Genre = '$genre_value' ORDER by $order_value ASC"; 

$order_value 경우, 예약 된 키워드로 발생하는 경우 역 따옴표 사용하여 탈출 할 수 있습니다. 열 이름과 테이블 이름은 식별자입니다. 작은 따옴표는 식별자를 문자열 리터럴로 만들어 order by 절이 예기치 않게 작동하도록합니다.

+0

고맙습니다, 고쳐 주셨습니다. – user1839207

+0

당신은''D' –

+0

을 환영합니다. $ radio라는 변수를 =에 올리면 ASC 나 DESC가됩니다. 다음 문은 잘 작동합니다 - $ query = "SELECT filmcode, FilmName, 장르 From film where Genre = '". $ genre_value. "'ORDER by"$ order_value. "". $ varible. ""; – user1839207