从MySQL获取30000个值,使用PHP插入下拉列表

时间:2013-06-18 10:50:05

标签: php mysql

我从MySQL加载30000个值并加载下拉选择。加载所有值后,它可以正常工作,但填充下拉列表需要很长时间。我做错了还是应该使用自动填充等其他方式?

由于

HTML code:

<div class="control">
  <label for="options" class="short">Fornecedor</label>
  <select id="fornecedor" name="fnd[]" multiple="multiple" class="short">
    <?php  
      $rows = getFornecedores($db);
      foreach($rows as $row): ?>
        <option value="<?php echo html_escape($row['idfornecedor']) ?>"><?php echo html_escape($row['nome']) ?></option>
    <?php endforeach; ?>
  </select>
</div>    

PHP函数:

function getFornecedores($db){
   $query = " 
    SELECT 
     idfornecedor, nome
    FROM
     fornecedor 
    ORDER BY
     nome
   "; 

   try 
   { 
      $stmt = $db->prepare($query); 
      $stmt->execute(); 
   } 
   catch(PDOException $ex) 
   {  
      die("Failed to run query: " . $ex->getMessage()); 
   }

   $rows = $stmt->fetchAll();
   return $rows;
}

1 个答案:

答案 0 :(得分:3)

将30K元素加载到下拉列表中对用户来说并没有多大意义。你真的希望用户在这样的盒子里找到任何东西吗?尝试提供一些提示或使用自动完成功能。