亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 PHP 中創建按字母順序排列的下拉菜單

如何在 PHP 中創建按字母順序排列的下拉菜單

PHP
慕村9548890 2022-07-16 10:51:26
我正在嘗試重新編寫此代碼,以便下拉菜單按字母順序排列:$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 下拉代碼放入關聯數組中,然后按namecustomer$row['customer']$activeProjectDropdown$customerName$customerName并將所有內容連接成一個字符串,但這不起作用,因為有重復的鍵。在同一條路徑上,我可能有一個嵌套數組,但我認為必須有一個更簡單的解決方案我錯過了。謝謝您的幫助!
查看完整描述

2 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

編寫一個 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";

}


查看完整回答
反對 回復 2022-07-16
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

嘗試這個:

SELECT ... ORDER BY customer ASC, job_name

這首先按客戶(升序)對所有內容進行排序,然后在兩行或更多行的客戶字段相等時按作業名稱(升序,這是默認值)對所有內容進行排序。

更多信息在這里


查看完整回答
反對 回復 2022-07-16
  • 2 回答
  • 0 關注
  • 141 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號