我有這樣的代碼:SQL命令由不起作用
function artykul_firmy_z_branzy($art_id, $limit) {
return select("
select f.id from artykuly a, firmy f where a.display = true
and a.id_branzy = f.branza_id and a.id = :id and f.profil <> 0 order by f.profil desc, f.firma asc limit ${limit}
", array('id' => $art_id));
}
此代碼應選擇從SQL數據庫中的某些行和排序它,它的偉大工程,但結果是,它具有最大的「F .profil「總是在列表的最後,當我將限制改爲」1「時,那麼我只得到了最大的f.profil的結果,所以排序工作,但如何在第一個位置顯示?
代碼模板,這表明結果:
{% if firmy_z_branzy_logo %}
<div class="firmy-z-branzy">
<img src="/static/screw.png" class="label-screw" /> <div class="label-title">FIRMY Z TEJ BRANŻY</div>
<div style="clear: both;"></div>
{% for i in firmy_z_branzy_logo %}
<div class="firma-branza"><a href="/wizytowka/{{ i.id_firmy }}"><img src="/{{ i.sciezka }}m/{{ i.plik }}"/style="margin-bottom:6px;"></a>{{ i.opis }}</div>
{% endfor %}
</div>
{% endif %}
我會說使用'JOIN'你的選擇而不是列出所有這些的。另外,你有沒有嘗試刪除'f.firma asc'? – 2015-03-03 11:50:59
是的,我試圖刪除f.firma asc或f.profil desc,看看這是否只適用於一個訂單,但它不會改變任何東西。問題在於,它運行正常 - 它從數據庫中選取,例如,12個(限制)結果以最大的f.profil結果,但在網站上以隨機順序顯示了這12個最高結果。例如:「a(5),b(3),c(9),d(5),e(1)」 - 我的代碼必須選擇3個最高數字,並按最高排序顯示,但我得到了一些如:「a(5),c(9),d(5)」 - 沒有排序,但正確挑選。 – user3180931 2015-03-03 12:07:35
這很奇怪...我不知道這是如何工作的,這裏是屏幕如何改變這個代碼對結果的影響 - http://i.imgur.com/iugQwos.jpg在這張圖片的底部,我呈現了我想要的對這個結果進行排序。 – user3180931 2015-03-04 09:32:37