2013-06-28 49 views
0

更新後:30.06.2013PHP和MySQL - 排序或分組 - 標識

$phonesRelated = $DB->getRandom(" `".DB_PREFIX."phones` a, `".DB_PREFIX."phones_categories` b ", " a.id ", " AND a.id=b.phone_id AND b.phone_id!='".$phone['id']."' AND b.category_id IN (".implode(",", $arr).") GROUP BY a.id", 3); 
$smarty->assign("phones", $phonesRelated); 

嗨,

  1. ".DB_PREFIX."phones - 代表與具有多個列的手機表(一次是ID )

  2. ".DB_PREFIX."phones_categories - 表示表2列(phone_id [具有從".DB_PREFIX."phones ID相同的數]和CATEGORY_ID [是多少Ò F中的類別])

例如:我們在其上具有ID = 7在表".DB_PREFIX."phonesID柱網頁的iPhone3。

我需要的是在ID = 7 - > ID = 8,ID = 9,ID = 10之後使查詢返回電話ID。此時,查詢通過ID爲46,ID = 47,ID = 48的表".DB_PREFIX."phones_categories末尾的ID返回記錄。

有人可以幫助我提示什麼要添加在代碼,使其返回連續的ID?

+2

將'order by'添加到您的sql中,並通過名稱而不是ID – Dave

+0

您正在使用任何聚合函數嗎? – Strawberry

+0

我不知道你的意思是「聚合函數」(我不太瞭解PHP和MySQL)。上面的代碼工作正常,只有我不能讓它連續選擇ID(它從表中選擇了最新的)。我發現像我的問題在這裏:http://stackoverflow.com/questions/11431279/how-can-get-records-after-specific-id-in-mysql,但我不知道把它放在我的代碼。 – owner

回答

2

只需添加到您的查詢的末尾:你想他們是爲了

ORDER BY name DESC //Or whatever serves as name 
0

請在:Iphone5的,iPhone4S的方面,iPhone4 ...或者你不在乎,只要它是每次都一樣?

如果第一個是這樣,然後做前面的回答表明,如果沒有,那麼你將需要確保,當你進入行插入表中,你每次做的是,在相同的順序

+0

我需要每次都一樣。手機的版本無關緊要。我希望被淘汰「隨機」forver :) – owner

+0

我想如果你做其他建議的答案,你會避免永遠隨機!這將是爲了儘管,但既然你不在乎,那麼它應該工作! – bombadil

+0

請在代碼中顯示我,因爲我在「$ sql ...,$ str_category ...和$ sql =」SELECT * FROM ...「的末尾放置了」order by「,但行爲相同。需要更改的整個代碼行謝謝 – owner