Ситуация: Когда страница загружается, она автоматически заполняет раскрывающийся список «сотрудниками». (Более 2000 записей извлечено на данный момент)
Затем я должен выбрать сотрудника более тысячи из записей.
Все работает абсолютно нормально.
Вопрос:
Как мне увеличить скорость выборки, если в будущем у меня будет более 10 000 данных для извлечения?
Есть ли лучшие варианты для этого?
Я хочу придерживаться доступных для поиска выборок. Если нет, пожалуйста, предложите хороший.
Вот мои коды на CodeIgniter:
контроллер:
public function employee()
{
$data["get_employee"] = $this->Home_model->get_query_array("SELECT employee_id, employee_name FROM Employee_List");
$this->load->view('header_view');
$this->load->view('employee_view', $data);
$this->load->view('footer_view');
}
Модель:
public function get_query_array($query_statement)
{
$query = $this->db->query($query_statement);
return $query->result();
}
Посмотреть:
<label for="employee">Employee</label>
<select class="selectpicker" data-show-subtext="true" data-live-search="true" name="employee" id="employee">
<option value=""></option>
<?php
foreach($get_employee as $row)
{
$id = $row->employee_id;
$name = $row->employee_name;
echo "<option value='".$id."'>".$name."</option>";
}
?>
</select>
Большое спасибо, ребята!
Когда вы выполните этот запрос для больших данных, определенно ваша страница будет работать медленно.
Для этого я предпочту, чтобы вы выбрали ajax select PHP search dropdown. Вот хороший пример https://codeforgeek.com/2014/09/ajax-search-box-php-mysql/ Пожалуйста, попробуйте с этим. Это будет очень полезно для вас. В этом разделе вы найдете, что ваша страница работает быстро и выглядит хорошо как функция в форме или где вы ее используете.
Спасибо
Вы можете создать выпадающий алфавит от A до Z, а затем щелкнуть мышью на любом символе, используя ajax, загрузить сотрудников, соответствующих этому символу. Таким образом, вы можете уменьшить число. загрузки сотрудника за раз, и это сократит время выборки с сервера, потому что если вы попытаетесь загрузить все сразу, это, безусловно, займет время.