当用户输入表单时,我知道用户可以输入什么,因为数据库中有数百个选项。我使用foreach循环从他们选择的张贴字段中获取类别和成本。例如:
<td><?php foreach($pcategories as $value){echo "$value <br>";}?></td>
$qty $pcategories $cost $Rate
1 Bicycles 100 45
7 Auto Parts 200 60
5 Alarm Sys 300 35
然后从下方的查询中选择费率
<?php $connection = mysqli_connect("localhost","root","","customs") or die("Error " . mysqli_error($connection));
$sql = "SELECT `categories`, `rate`, `elevy` FROM `lt_products` WHERE `categories` IN ('".implode("','",$pcategories)."')";
$result = mysqli_query($connection, $sql)or die(mysql_error());
while($row = mysqli_fetch_assoc($result)) {?>
<?php echo $row["rate"]; ?> <br>
<?php } ?>
这是一个问题,查询是根据用户推杆的类别提取正确的费率但是费率没有出来匹配用户输入的类别的顺序。
上面的利率实际上应该是下面的样子,但这就是我在上面得到的
$qty $pcategories $cost $Rate
1 Bicycles 100 35
7 Auto Parts 200 60
5 Alarm Sys 300 45
select查询似乎是根据表中的pcategories字段按字母顺序出现的。
我不知道解决这个问题的最佳方法是什么,以便实际费率与用户选择的类别相匹配。
任何帮助都将非常感谢
使用FIELD
函数根据结果在$pcategories
中的位置对结果进行排序
$sql = "SELECT `categories`, `rate`, `elevy`
FROM `lt_products`
WHERE `categories` IN ('".implode("','",$pcategories)."')
ORDER BY FIELD(categories, '".implode("','",$pcategories)."')";