【发布时间】:2022-02-05 09:32:20
【问题描述】:
我刚刚开始学习 php。我研究过的所有东西都引用了一个数组进行排序,但我不知道如何在这种情况下使它工作,因为我的一个字段不断变化,所以我无法创建一个固定的数组。请记住,我是菜鸟,所以请详细说明。
我想根据两个字段排序结果如何显示。
要排序的第一个字段应基于“SortOrder”,因为它与“TaskSubType”字段相关(在表单上显示为工单类型。TaskSubType 分配了以下值并将在数组中工作:
MSP = 1
DEDICATED = 2
REMOTE SUPPORT = 3
EXPEDITED = 4
EXPEDITED - $25 = 4
STANDARD = 5
STANDARD - $25 = 5
因此,如果工单类型 (TaskSubType) 被选为“专用”,那么它将被排序为“2”,如果“标准 - $25”被选为工单类型 (TaskSubType),那么它将被排序为“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();
?>
【问题讨论】:
-
在这种情况下,您最好通过在 SQL 查询中添加
ORDER BY子句来完成所需的排序。 -
使用 ORDER BY Ticket 类型对 SQL 查询进行排序会更简单,OrderNumber 在 WHERE 之后
-
如果您在选择查询中明确引用了属性名称,我们本可以为您提供粘贴的确切代码。顺便说一句,无论如何选择“*”通常都是不好的做法
-
要排序的实际 mysql 字段名称在“Tickets”表中,称为“SortOrder”和“TicketNumber”
-
您可以使用
ORDER BY进行操作。此子句出现在 SQL 查询的末尾。示例:ORDER BY salary DESC, last_name ASC;
标签: php html mysql sorting echo