2013-04-04 1 views
0

MySQL 테이블에서 끌어온 테마 파크 목록이 있습니다. 기본 쿼리는다중 정렬 MySQL 쿼리를 사용하는 가장 효율적인 방법

try 
{ 
$sql = 'SELECT park_id, name, town, state, country 
FROM tpf_parks ORDER BY name ASC'; 
$result = $pdo->query($sql); 
} 
catch (PDOException $e) 
{ 
$error = 'Error fetching parks: ' . $e->getMessage(); 
//include 'error.html.php';// 
exit(); 
} 

이며 이름은 ASC입니다. 나는 국가와 국가 (그리고 결국 등급)에 의해 목록을 분류 할 이것들 이상의 링크를 원한다. 또한 테마 파크, 워터 파크, '기타'및 '모두보기'만 표시 할 링크가 필요합니다.

내가보고있는 방식은 각 쿼리에 대해 새로운 PHP 페이지가 필요하지만 각 쿼리에 대해 16 가지 PHP 페이지가 필요하다는 것입니다. 16 개의 쿼리가 모두 한 페이지에서 실행되고 링크를 클릭하면 이전 목록을 대체하는 새로 정렬 된 목록 만로드되므로 한 페이지로 모두 유지할 수 있습니까?

링크 중 하나를 클릭하여 페이지를 정렬 방법의 문자로 이동하는 링크의 A-Z도 필요합니다. 테마 파크 목록은 상태별로 정렬되며 'K'를 클릭하면 페이지가 캔자스의 공원으로 이동합니다. 나는 HTML 앵커를 사용하여 이러한 링크를 생각하고 있었지만 그 결과를 26 개의 척 (각각의 문자 A-Z에 하나)으로 어떻게 반영합니까?

오랫동안 바람 피는 질문에 사과드립니다. 감사합니다.

+0

내가이 클라이언트 쪽 일을 볼 것입니다. (http://www.tripwiremagazine.com/2012/05/jquery-filter-sort-plugins.html) –

답변

1
//make a function 

function orderby($select, $var){ 
$sth = $dbh->prepare('SELECT {$select} FROM tpf_parks ORDER BY {$var}'); 
$sth->execute(); 
$result = $sth->fetchAll(); 
echo $result; 
} 
// run a function  
orderby ("park_id, name, town, state, country","name ASC"); 
//make all the functions you need like this 
+0

고맙다. 위의 코드를 PHP와 웹 디자인에 익숙해 져서 이해하는 데 시간이 걸렸다. 일반적이지만 그것은 일을합니다. 내 다음 질문은이 쿼리의 결과를 첫 글자로 반향하는 방법은 무엇입니까? 아이디어는 각 문자에 대한 목록의 html 앵커에 링크 된 페이지 상단에 A-Z 링크가 있습니다. 현재 결과를 표시하는 데 사용하는 코드는 다음과 같습니다. '이것은 '? 'code' – themeparkfocus

+0

나는 당신의 정확한 필요를 이해하고 있는지 잘 모르겠다. 나는 당신에게 대답을 준다. 1) {$ var} ASC (에코 결과에 대한 AZ 정렬을 제공한다.) 또한 다음 링크를 생성 할 수있다. 에코는 다음과 같은 함수 내부에서 발생합니다 : echo ''.$result.''; –

+0

2) 결과를 별도로 유지하려면 다음과 같이 함수를 실행하십시오. orderby ("park_id, 이름, 마을, 주, 국가", "이름 LIKE 'A %'"); –

0

일부 스크립트를 통해 출력하기 위해 정렬 기능을 사용하는 것이 더 나을 것입니다. (http://tablesorter.com/ 등)

0

이 기능을 사용해보십시오 : 사용 후

function getQueryOrder($field,$order){ 
     $query=""; 
     switch ($field){ 
     case "park_id": 
      $query="SELECT park_id, name, town, state, country FROM tpf_parks ORDER BY park_id ".$order; 
      break; 
     } 
     case "name": 
      $query="SELECT park_id, name, town, state, country FROM tpf_parks ORDER BY name ".$order; 
      break; 
     } 
     case [Other-field]: 
      ..... 
      break; 
     } 
     } 
     return $query; 
    } 

과 :

try{ 
    $sql = getQueryOrder('park_id','ASC');// select the field park_id and order ASC 
    $result = $pdo->query($sql); 
} 
관련 문제