2014-05-12 4 views
-1

내 $ sql 변수에 대해 더 많은 삼항 if 문을 어떻게 추가 할 수 있습니까? 내가 추가하려고 할 때 빈 출력 더 :mysql 질의에 대한 Ternary If 문

작업 :

$sql = "SELECT r.title,r.author,r.summary,r.posted_on,r.review_url,r.rating 
     FROM reviews r 
     LEFT JOIN websites w 
     ON w.id=r.website_id 
     WHERE w.rooftop_id=$rooftop_id 
     AND review_site_id IN ($sites) 
     AND rating >= $star_threshold 
     AND review_status_id=2 
     " . ($pagination == 1 ? " LIMIT $offset, $review_limit " : ""); 

작동하지 :

$sql = "SELECT r.title,r.author,r.summary,r.posted_on,r.review_url,r.rating 
     FROM reviews r 
     LEFT JOIN websites w 
     ON w.id=r.website_id 
     WHERE w.rooftop_id=$rooftop_id 
     AND review_site_id IN ($sites) 
     AND rating >= $star_threshold 
     AND review_status_id=2 
     " . ($pagination == 1 ? " LIMIT $offset, $review_limit " : "") 
     . ($rating_filter == 1 ? " ORDER BY r.rating " : ""); 
+3

견적을 살펴보십시오. 그들은 틀렸다. –

+0

오류보고를 켜십시오! 'php.ini'에서'error_reporting'과'display_errors'를 찾으십시오. – Rudie

답변

2

이 시도

MySQL의 측면에서 LIMIT 절은의 ORDER BY 절 앞에 붙을 수 없습니다.성명. ORDER BY 절은 절보다 앞에 이어야하며 절이 있어야합니다.


PHP 구문에는 간단한 문제가 있습니다. 마지막으로 게시 한 코드 줄의 시작 부분에 여분의 큰 따옴표가 있습니다.

1
: 조회에 오타가 있었다
$sql = "SELECT r.title,r.author,r.summary,r.posted_on,r.review_url,r.rating 
     FROM reviews r 
     LEFT JOIN websites w 
     ON w.id=r.website_id 
     WHERE w.rooftop_id=$rooftop_id 
     AND review_site_id IN ($sites) 
     AND rating >= $star_threshold 
     AND review_status_id=2 
     " . ($pagination == 1 ? " LIMIT $offset, $review_limit " : "") 
     " . ($rating_filter == 1 ? " ORDER BY r.rating " : "");