2016-08-24 2 views
0

콤보 상자에 데이터베이스 값을 표시하는 방법은 무엇입니까? 나는이 같은 시도했다 :콤보 상자에 데이터베이스 값을 표시하는 방법은 무엇입니까?

http://pastebin.com/gZL4qAPS

$result = $koneksi->query(
    "SELECT tb_sekolah.idSekolah, 
     tb_sekolah.namaSekolah, 
     tb_sekolah.tb_kategori_sekolah_idKategori, 
     tb_kategori_sekolah.namaKategori, 
     tb_uptd.namaUPTD, 
     tb_sekolah.alamat, 
     tb_sekolah.telp, 
     tb_sekolah.kataSandi, 
     tb_sekolah.status 
    FROM tb_sekolah, tb_kategori_sekolah, tb_uptd 
    WHERE tb_sekolah.tb_kategori_sekolah_idKategori = tb_kategori_sekolah.idKategori 
    AND tb_uptd.idUPTD = tb_sekolah.tb_UPTD_idUPTD 
    AND idSekolah='$id'" 
); 

while ($row = $result->fetch_array()){ 

    <select name="id_kategori" size="1" class="form-control" required> 
     <option label="-- Pilih Kategori --" ></option> 
     <?php //looping kategori 
     $result1 = $koneksi->query("SELECT * FROM tb_kategori_sekolah"); 
      while ($row1 = $result1->fetch_array()){    
       if ($row['tb_kategori_sekolah_idKategori']==$row1['idKategori']){ 
        $status = 'selected' ; 
       } ?> 
       <option <?php echo isset($status)?$status:''; ?> value="<?php echo $row1['idKategori'] ?>"><?php echo $row1['namaKategori']; ?> 
       </option> 
      <?php 
      } 
      ?> 
    </select> 
<?php 
} 
?> 

항상 당신이 선언 설정하지 않았기 때문에 그것은 단순히 tb_kategori_sekolah

+1

** 경고 **처럼되고 가정 쿼리 내에서 사용됩니다. 가능하면 ** prepared statements **를 사용하십시오. 이것들은 [mysqli] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)와 [PDO] (http://php.net/manual/)에서 매우 간단합니다. en/pdo.prepared-statements.php) 어디에서 사용자가 제공 한 데이터는 나중에 사용되는 것에 따라'bind_param' 또는'execute'를 사용하여 채워지는'?'또는': name' 지시자로 지정됩니다. – tadman

답변

0

의 마지막 값으로 선정되었다

$status = NULL;

While 함수 내부

이것은 몇 가지 심각한 [SQL 주입 버그]이 (http://bobby-tables.com/) 데이터 _GET` $ '때문에 :

코드는이

<select name="id_kategori" size="1" class="form-control" required> 
    <option label="-- Pilih Kategori --" ></option> 
    <?php //looping kategori 
    $result1 = $koneksi->query("SELECT * FROM tb_kategori_sekolah"); 
     while ($row1 = $result1->fetch_array()){    
      // DECLARE THIS AS NULL 
      $status = NULL; 

      if ($row['tb_kategori_sekolah_idKategori']==$row1['idKategori']){ 
       $status = 'selected' ; 
      } ?> 
      <option <?php echo isset($status)?$status:''; ?> value="<?php echo $row1['idKategori'] ?>"><?php echo $row1['namaKategori']; ?> 
      </option> 
     <?php 
     } 
     ?> 
</select> 

+0

시도했지만 성공하지 못했습니다. tb_kategori_sekolah 의 모든 결과를 표시하는 고정 된 콤보 상자의 값과 $ status 변수가 작동하지 않습니다. –

관련 문제