gpt4 book ai didi

php - "ORDER BY FIELD"MySQL 似乎无法工作

转载 作者:行者123 更新时间:2023-11-29 08:54:13 25 4
gpt4 key购买 nike

长话短说,我的按字段排序似乎不适用于我的 MySQL 调用。我真的无法在存储中找到模式...

$theorder 正确设置为

, 'People-Wedding Photo', 'People-Kids', 'People-Male/Female', 'Architecture-Exterior', 'Architecture-Interior', 'Animal-Birds', 'Backgrounds'

这是我的代码。正如你所看到的,我正在循环,进行格式转换......但我仍然得到错误的顺序......随机顺序......

我有什么遗漏吗?

$under_link_query = mysql_query("SELECT DISTINCT(type), type FROM ".$prefix."ProFolio_work WHERE type != 'Backgrounds' ORDER BY FIELD(type" . $theorder .")");


while($u_row = mysql_fetch_assoc($under_link_query)){
$type = html_entity_decode($u_row['type']);

$typeForm = preg_replace('/[^a-z0-9]/i', '_', $type);
?>
<a href="#" id="link_<? echo str_replace(' ', '_', $typeForm); ?>">
<? echo ucfirst($type); ?></a>
<?

最佳答案

@Malovich 给出了答案,基本上你应该使用:

ORDER BY $theorder

但请记住,默认排序是升序,并且排序是按顺序发生的。我注意到您的变量 $theorder 设置为以逗号开头的字符串,这几乎是您的问题。

确保 $theorder 不以逗号开头,然后尝试仅在一行上排序。如果有效,请继续添加更多内容。

==============编辑=================

抱歉,您正在尝试对字段进行子排序。错过了那部分,所以这是发生的事情:

您需要提供所有要排序的字段,否则MySQL将首先对您未提供的每个字段进行排序,然后再对您提供的字段进行排序。如果需要,您可以提供要排序的字段子集,但您需要以相反的顺序提供它们,然后使用 DESC 表示法,例如:

ORDER BY FIELD (field,'lastsort',middlesort','firstsort') desc

这将按以下顺序显示您的列表:

firstsort items
middlesort items
lastsort items
<all other options, in reverse alphabetical order> items

其中的关键部分是您需要添加所有字段值以进行排序。 (或使用解决方法)。

关于php - "ORDER BY FIELD"MySQL 似乎无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10402268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com