所以,我有一个文件处理用户键入数字的所有内容,该数字用于显示XML。这是文件的一部分:
while ($push = mysql_fetch_array($push_result)) {
$item_result = mysql_query("SELECT * FROM adva_".$push['Category']."s WHERE Id = '".$push['Id']."' ORDER BY Level");
$item = mysql_fetch_assoc($item_result);
}
所以,它应该按级别排序,但它不是,这里是XML(只有相关信息):
<type>
<Id>2537</Id>
<Element>2</Element>
<Level>10</Level>>
</type>
<type>
<Id>2538</Id>
<Element>2</Element>
<Level>40</Level>>
</type>
<type>
<Id>2540</Id>
<Element>2</Element>
<Level>70</Level>>
</type>
<type>
<Id>2541</Id>
<Element>2</Element>
<Level>100</Level>>
</type>
<type>
<Id>2542</Id>
<Element>2</Element>
<Level>130</Level>>
</type>
<type>
<Id>2624</Id>
<Element>1</Element>
<Level>3</Level>>
</type>
<type>
<Id>2625</Id>
<Element>1</Element>
<Level>28</Level>>
</type>
<type>
<Id>2626</Id>
<Element>1</Element>
<Level>53</Level>>
</type>
<type>
<Id>2627</Id>
<Element>1</Element>
<Level>78</Level>>
</type>
<type>
<Id>2628</Id>
<Element>1</Element>
<Level>103</Level>>
</type>
<type>
<Id>2629</Id>
<Element>1</Element>
<Level>128</Level>>
</type>
请参阅,当我明确告知不要时,为什么按ID排序? (我知道代码可能很脆弱,这是从2010年开始我认为,仍然只是本地主机)。
答案 0 :(得分:1)
您只使用WHERE Id = '".$push['Id']."'
在循环内一次获取一个元素。 SQL无法对一个项进行排序。所以它们可能最终与$ push数组中的顺序相同。您希望将所有ID收集到一个数组中,并使用WHERE Id in (...)
执行单个查询。 (在&#34;语句中搜索SQL&#34;)。那么你的排序会起作用,也会更有效率。