복붙노트

[SQL] 어떻게 데이터베이스에서 값을 채우기 HTML 드롭 다운 목록에

SQL

어떻게 데이터베이스에서 값을 채우기 HTML 드롭 다운 목록에

HTML 양식의 일부로 나는 내 데이터베이스의 모든 사용자 이름을 표시하는 드롭 다운 목록을 가지고 싶다 만드는 오전.

누군가가 내가 잘못 뭘하는지 저를 도와 수 - 나는 트릭하지만 드롭 다운 목록을 할 것이다 다음 코드가 비어 생각? 감사.

<tr>
<td>Owner</td>
<td>
<select name="owner">
<?php 

$sql = mysqli_query($connection, "SELECT username FROM users");

while ($row = $sql->fetch_assoc()){

?>
<option value="owner1"><?php echo $row['username']; ?></option>

<?php
// close while loop 
}
?>
</td>
</tr>

해결법

  1. ==============================

    1.내 생각 엔 당신이 루프 후 선택 태그를 닫지 않기 때문에 당신은 문제가 있다는 것입니다. 그 트릭을 할 수 있을까요?

    내 생각 엔 당신이 루프 후 선택 태그를 닫지 않기 때문에 당신은 문제가 있다는 것입니다. 그 트릭을 할 수 있을까요?

    <select name="owner">
    <?php 
    $sql = mysqli_query($connection, "SELECT username FROM users");
    while ($row = $sql->fetch_assoc()){
    echo "<option value=\"owner1\">" . $row['username'] . "</option>";
    }
    ?>
    </select>
    
  2. ==============================

    2.코드가 좋은 아래 .. 그것은 누군가가 다른 사람의 이름으로 주어졌다 이 포럼에서 aaronbd

    코드가 좋은 아래 .. 그것은 누군가가 다른 사람의 이름으로 주어졌다 이 포럼에서 aaronbd

    <?php
    
    $conn = new mysqli('localhost', 'username', 'password', 'database') 
    or die ('Cannot connect to db');
    
        $result = $conn->query("select id, name from table");
    
        echo "<html>";
        echo "<body>";
        echo "<select name='id'>";
    
        while ($row = $result->fetch_assoc()) {
    
                      unset($id, $name);
                      $id = $row['id'];
                      $name = $row['name']; 
                      echo '<option value="'.$id.'">'.$name.'</option>';
    
    }
    
        echo "</select>";
        echo "</body>";
        echo "</html>";
    ?> 
    
  3. ==============================

    3.나는 몇 가지 디버깅 단계에 따라 좋을 것.

    나는 몇 가지 디버깅 단계에 따라 좋을 것.

    먼저 DB에 직접 쿼리를 실행합니다. 확인은 다시 결과를 가져오고있다. 심지어이 같은 간단하게 뭔가 당신은 당신이 실수를 한 찾을 수 있습니다, 또는 테이블이 비어, 또는 somesuch 이상한이다.

    당신이 DB에 직접 뭐가 일치하는지 확인 - 위의 확인 인 경우, 반복하고는 mysql_query 다시를 받고 한 내용을 확인하기 위해 HTML로 바로 직접 $ 행의 내용을 메아리보십시오.

    데이터가 출력 페이지에있는 경우, 다음 HTML 서식에 잘못 무슨 일이 일어나고 있는지 살펴 봅니다.

    아무것도 $ 행의 출력이없는 경우는 mysql_query가 예를 들어, 작동하지 않는 이유 그러나, 다음 파악 사용자가 DB 쿼리에 해당 권한이 있는가, 당신이 열려있는 DB 연결을 수행 등등 DB에 연결하는 웹 서버는 [이 라인에 뭔가가 종종있을 수있는 잡았다] 수

    약간 쿼리 변경

    $sql = mysql_query("SELECT username FROM users") or die(mysql_error());  
    

    오류를 강조하는 데 도움이 될 수 있습니다 : PHP 매뉴얼을

  4. ==============================

    4.

    <select name="owner">
    <?php 
    $sql = mysql_query("SELECT username FROM users");
    while ($row = mysql_fetch_array($sql)){
    echo "<option value=\"owner1\">" . $row['username'] . "</option>";
    }
    ?>
    </select>
    
  5. ==============================

    5.

    <?php
     $query = "select username from users";
     $res = mysqli_query($connection, $query);   
    ?>
    
    
    <form>
      <select>
         <?php
           while ($row = $res->fetch_assoc()) 
           {
             echo '<option value=" '.$row['id'].' "> '.$row['name'].' </option>';
           }
        ?>
      </select>
    </form>
    
  6. ==============================

    6.대신 OOP 개념을 사용합니다. 기능을 가진 클래스를 만듭니다

    대신 OOP 개념을 사용합니다. 기능을 가진 클래스를 만듭니다

    class MyClass {
    
    ...
    
    function getData($query) {
        $result = mysqli_query($this->conn, $query);
        while($row=mysqli_fetch_assoc($result)) {
            $resultset[] = $row;
        }       
        if(!empty($resultset))
            return $resultset;
    } }
    

    다음 코드에서 호출 함수에 클래스 객체를 사용

    <?php 
    
        $obj = new MyClass();
        $row = $obj->getData("select city_name from city"); 
    ?>
    <select>
        <?php foreach($row as $row){ ?>
            <option><?php echo $row['city_name'] ?></option>
    
    <?php  } ?>
    </select>
    

    전체 코드와 설명을 여기에서 찾을 수 있습니다

  7. from https://stackoverflow.com/questions/8022353/how-to-populate-html-dropdown-list-with-values-from-database by cc-by-sa and MIT license