php - 如何在 PHP 中创建按字母顺序排列的下拉菜单
问题描述
我正在尝试重新编写此代码,以便下拉菜单按字母顺序排列:
$activeProjectDropdown.="<option value=''>Select Project</option>";
$getInfo = "SELECT id, customer, job_name, haul_info
FROM dispatch_jobs
WHERE (:mydate BETWEEN delivery_date AND delivery_date_end)
ORDER BY customer, job_name";
$result=DB::run($getInfo, ['mydate' => $myDate]);
while($row=$result->fetch(PDO::FETCH_BOTH)) {
if(!empty($row['haul_info'])) {
$haulinfo = "($row[haul_info])";
}else{
$haulinfo = "";
}
if($checkit == $row['id']){
$woot = 'selected=selected';
}else{
$woot = '';
}
$customerName = pdo_getName('name', 'customer', "$row[customer]");
$activeProjectDropdown.="<option value='$row[customer]|$row[id]' $woot>$customerName $haulinfo</option>\n";
}
在此代码中,查询从数据库中返回一些行,其中 customer 是不按任何字母顺序排列的数字代码。在代码的更下方,调用了一个函数,该函数从表的pdo_getName
列和 id 中获取并查询数据库,返回客户的字符串化名称。因为直到后来循环之后才检索到名称,所以我无法找出一种可以按字母顺序排列. 我尝试将and 下拉代码放入关联数组中,然后按name
customer
$row['customer']
$activeProjectDropdown
$customerName
$customerName
并将所有内容连接成一个字符串,但这不起作用,因为有重复的键。在同一条路径上,我可能有一个嵌套数组,但我认为必须有一个更简单的解决方案我错过了。谢谢您的帮助!
解决方案
编写一个 JOIN 查询并在一个查询中获取所有数据,然后您可以按照我认为您要求的方式对客户名称进行排序。
这将提高性能并简化代码。
$getInfo = "SELECT dj.id, dj.customer, dj.job_name, dj.haul_info
c.name
FROM dispatch_jobs dj
LEFT JOIN customer c ON c.id = dj.customer
WHERE (:mydate BETWEEN dj.delivery_date AND dj.delivery_date_end)
ORDER BY c.name, dj.job_name";
$result=DB::run($getInfo, ['mydate' => $myDate]);
while($row=$result->fetch(PDO::FETCH_BOTH)) {
if(!empty($row['haul_info'])) {
$haulinfo = "($row[haul_info])";
}else{
$haulinfo = "";
}
if($checkit == $row['id']){
$woot = 'selected=selected';
}else{
$woot = '';
}
$activeProjectDropdown.="<option value='$row[customer]|$row[id]' $woot>$row[name] $haulinfo</option>\n";
}
推荐阅读
- matlab - 如何返回包含给定数字的位置索引的行向量
- xml - 添加嵌套的 XML 元素
- css - Change the values of CSS variables at runtime in Typescript
- file - 通过网页从个人计算机共享文件(具有授权访问权限)
- java - 如何在 Spigot/Bukkit 插件中将门户重定向到正确的世界?
- python - 将一组 3 通道图像从 Python 读取到二维数组中以在 C 中使用的有效方法
- react-native - 了解 textInput 并浏览文档
- javascript - 从多个来源异步更新 React 状态
- transactions - 两阶段锁定是否适用于每个事务或整个时间表?
- git - laravel 命令在 git 中找不到错误