【发布时间】:2023-03-08 07:23:01
【问题描述】:
我正在尝试查询 SQL 以获取用于预先输入的值数组,但我显然缺少数组的基础知识,因为它甚至没有给我提供接近我期望的结果
我想从 SQL 中仅收集不同数据的“名称”列
这是我的 MySQL 查询
$data['typeahead'] = $this->db->query('SELECT DISTINCT Name from table')->result_array();
这是它在 var_dump 上给出的输出
array(287) {
[0]=> array(1) { ["Name"]=> string(16) "'67 Shelby GT500" }
[1]=> array(1) { ["Name"]=> string(8) "Tooligan" }
[2]=> array(1) { ["Name"]=> string(24) "'67 Pontiac Firebird 400" }
[3]=> array(1) { ["Name"]=> string(17) "Volkswagen Beetle" }
}
我唯一想做的就是用列中的数据构建一个数组。我正在为 FrameWork 使用 CodeIgniter,并将使用 Bootstrap 的 JS 来处理 typeahead,但我被困在数据数组部分。
任何帮助都将不胜感激,我找到了许多关于如何使用非 MySQL 数组作为预输入的教程,但没有一个适用于 MySQL。
^^ 解决了
立即发布:
Typeahead 没有从数组中提取数据
控制器代码:
$name_array = $this->db->query('SELECT DISTINCT Name from table')->result_array();
$typeahead_string = '';
foreach ($name_array as $name)
{
$formatted_name = '"' . $name['Name'] . '", ';
$typeahead_string .= $formatted_name;
}
$option_list = "[" . rtrim($typeahead_string, ", ") . "]";
$data['typeahead'] = $option_list;
查看代码:
<input type="text" class="span3 search-query" placeholder="Search" id="typeahead" data-provide="typeahead" data-source="<?php echo $typeahead; ?>"><button type="submit" class="btn"><i class="icon-search"></i></button>
【问题讨论】:
-
那不是数组,那是代表查询结果的对象。我对 CI 一无所知,但我确信文档解释了如何进行数据库查询。
-
@ÁlvaroG.Vicario 你是对的,我添加了 ->result_array() 现在我在一个数组中得到一个数组。我只需要弄清楚如何完全删除第一个数组
-
您可以尝试查看
row_array()返回的内容,而不是result_array(),或者使用$newArray = $oldArray[0];获取您的数组数据。这只是将$oldArray的第一个元素放入$newArray(第一个元素恰好也是一个数组)。 -
row_array 给出 1 个条目,$data['typeahead'] = $temp['0'];
标签: php mysql arrays codeigniter typeahead