对两个字段的查询结果排序 PHP

Sorting PHP Results of a query on two fields

我才刚刚开始学习 php。我研究过的所有内容都引用了一个用于排序的数组,但我不知道如何在这种情况下进行排序,因为我的一个字段在不断变化,所以我无法创建一个固定的数组。请记住,我是菜鸟所以请详细解释。

我想根据两个字段对结果的显示方式进行排序。

要排序的第一个字段应基于“SortOrder”,因为它与“TaskSubType”字段相关(在表单上显示为工单类型。TaskSubType 分配了以下值并在数组中工作:

MSP = 1
DEDICATED = 2
REMOTE SUPPORT = 3
EXPEDITED = 4
EXPEDITED -  = 4
STANDARD = 5
STANDARD -  = 5

因此,如果工单类型 (TaskSubType) 选择为“专用”,则它将被排序为“2”,如果工单类型 (TaskSubType) 选择为“标准 - $25”,则它将被排序为"5".

我要排序的第二个字段是票号 (TicketNumber) 字段。该字段中的值不断变化,因为我们每天都会创建新工单,所以我不知道如何使用数组对该字段进行排序。

主要目标:我想根据我们分配给每种类型的数值(这是我们的维修优先级)按工单类型对结果进行排序,然后在所有“专用”或“标准”中排序以处理每张工单在该组中按创建顺序排列(每张新票加一)。

下面的代码是我到目前为止所做的,下面的网络链接显示了我的结果当前是如何显示的:

显示结果的网页: https://fireytech.com/FireytechDatabase/hello.php

代码:

<?php

require '../../db_php/dbconnection.php';

$sql = "SELECT * FROM
            Tickets 
        Left JOIN
            Clients
        ON Tickets.CustomerNumber=Clients.CustomerNumber
        JOIN Contacts
        ON Contacts.ContactID=Clients.CustomerNumber
        JOIN Equipment
        ON Equipment.ContactID=Clients.CustomerNumber
        
        WHERE Equipment.PRINT = '-1' AND Contacts.DispatchContact = '-1' AND TicketStatus = 'Active' AND NOT TicketSubStatus = 'CUSTOMER PICKUP' AND NOT TaskSubType = 'ON-SITE'
";
$result = $conn->query($sql);

echo"<table border='1'>";
echo "<tr><td>Ticket Type</td><td>Ticket Number</td><td>Date Received</td><td>Last Edited</td><td>Last Name</td><td>Followup By</td><td>Sub Status</td><td>Repair Type</td><tr>";
if ($result->num_rows > 0){
while($row = $result->fetch_assoc() ){
    $dr= date("m/d/Y", strtotime($row['DateReceived']));
    $dl= date("m/d/Y", strtotime($row['DateLastEdited']));
    echo "<tr><td>{$row['TaskSubType']}</td><td>{$row['TicketNumber']}</td><td>{$dr}</td><td>{$dl}</td><td>{$row['ContactLast']}</td><td>{$row['FollowupBy']}</td><td>{$row['TicketSubStatus']}</td><td>{$row['ItemType']}</td></tr>";
    
}
} else {
    echo "0 records";
}

echo"</table>";

$conn->close();

?>

Murosadatul 给了我所需的清晰度。我曾尝试使用 ORDER BY 命令,但没有意识到我需要将它放在 SQL 查询的末尾。下面以粗体显示的是我将它放在我的代码中的位置,这样如果其他人遇到同样的问题它就可以工作:

$sql = "SELECT * FROM
            Tickets 
        Left JOIN
            Clients
        ON Tickets.CustomerNumber=Clients.CustomerNumber
        JOIN Contacts
        ON Contacts.ContactID=Clients.CustomerNumber
        JOIN Equipment
        ON Equipment.ContactID=Clients.CustomerNumber
        
        WHERE Equipment.PRINT = '-1' AND Contacts.DispatchContact = '-1' AND TicketStatus = 'Active' AND NOT TicketSubStatus = 'CUSTOMER PICKUP' AND NOT TaskSubType = 'ON-SITE'

->->->->->->-> 按排序顺序排序,票号 “ ; $result = $conn->query($sql);