2016-08-07 3 views
0

데이터베이스의 테이블에서 옵션을 결정하는 드롭 다운 선택이있는 양식이 있습니다. 주기적으로 (수동으로) 드롭 다운과 데이터베이스에 더 많은 옵션을 추가 할 것입니다. 어느 나는 드롭 다운 선택이 같은 데이터베이스에서 옵션을 얻을 수 있습니다 : 지금 업데이트해야 할 모든 데이터베이스이며, 양식 자체를 업데이트하기 때문에 나에게 적은 작업을 줄 것이다데이터베이스에서 데이터를 가져 와서 드롭 다운 목록을 만들어야합니까?

<select class="form-control" name="category" id="category"> 

    <?php 
    $sql = "SELECT id, category FROM categories;"; 
    $result = $GLOBALS['conn']->query($sql); 
    if ($result->num_rows > 0) { 
     // output data of each row 
     while($row = $result->fetch_assoc()) { 
      $category = $row['category']; 
      $id = $row['id']; 
      echo "<option value='$id'>$category</option>"; 
     } 
    } 
    ?> 
</select> 

합니다.

아니면 내가 할 수있는 수동으로 입력이 같은 형태로 옵션 :

<select class="form-control" name="category" id="category"> 
    <option value='1'>option1</option> 
    <option value='2'>option2</option> 
    <option value='3'>option3</option> 
</select> 

이 방법은 많은 수작업을 필요로하지만, 데이터베이스에 각 시간을 연결하는 대한 (적은 작업 필요가 없다는 장점이됩니다 서버).

제 질문은 어떤 방법을 사용해야합니까? 더 많은 작업이나 서버에 더 많은 작업을 제공하는 방법을 제공하는 방법은 무엇입니까?

+0

데이터베이스 메소드가 작동하는 경우 왜 수동 방법을 선택 하시겠습니까? 데이터베이스와 고정하십시오 – RiggsFolly

+0

데이터베이스에서 수행하십시오. 그것은 미래의 증거입니다. 정확히 같은 범주의 다른 장소에서 사용할 계획이라면 관리 할 장소가 하나만 있습니다. 서버로드가 걱정되면 세션에서 캐시 할 수 있습니다. – Ibrahim

+0

@RiggsFolly 내 관심사는 데이터베이스 메소드가 수동으로 (수동으로) 쉽게 할 수 있고 페이지가로드 될 때마다 자원을 낭비 할 필요가 없을 때 시스템 자원을 낭비한다는 것입니다. – KNejad

답변

0

select에 대해 데이터베이스를 사용하는 데있어서 프로와 반대 인수가 있습니다. 프로 논쟁에 관해서는 업데이트하기가 상대적으로 쉽습니다 - 당신은 새로운 값을 삽입하기 만하면 폼에 나타납니다. 이 방법의 문제점은 양식을 렌더링 할 때마다 응용 프로그램이 쿼리를 수행한다는 것입니다. 수백만 클릭이있는 웹 사이트에서는 좋은 생각이 아닙니다. 따라서 대체 값은 쿼리 결과가 일부 중간 계층에 캐싱된다는 것입니다. 특히이 값이 많이 변경되지 않는 경우에는 더욱 그렇습니다. 내 경험에 비추어 볼 때 이러한 값을 처리하는 가장 좋은 방법은 구성 파일에서로드하는 것입니다. 이것들은 거의 변하지 않는 값이며 거기에 새로운 가치가 추가 될 수 있습니다. 이들은 여전히 ​​캐싱 될 수 있으며 데이터베이스 히트는 필요하지 않습니다.

+0

부정적인 의견을 언급하는 데주의합니까? –

관련 문제