PHP:从MySQL数据库中获取特定元素,以显示在选择选项列表

时间:2015-07-16 08:54:35

标签: php mysql

我的网站上有一个选择菜单,显示所有可用的国家/地区。这些国家来自我的MySQL表,其中包含10个国家/地区,以随机顺序排列。我完全知道如何从我的表中检索所有国家/地区并使用PHP在我的HTML选择菜单中输出它们。

然而,当我想选择两个特定 <时,我想知道代码方式是 最有效的方式 / em> 国家/地区显示在我的选项列表的顶部,其他八个国家/地区列在下面?我想用尽可能少的sql和php来实现这个目标。

我们说我有下表&#34;国家&#34;:

   id   name
   1    United States
   2    France
   3    Brazil
   4    Puerto Rico
   5    India
   6    Australia
   7    Italy
   8    Denmark
   9    South Africa
   10   Oman

我想在选择菜单中输出国家/地区,我希望列表从丹麦和印度开始(将其ID作为选项值)。

我的目标:

<select>
   <option value="8">Denmark</option>
   <option value="5">India</option>
   // ... the other eight countries underneath, in no specific order
</select>

检索所有国家/地区的基本SQL查询将是:

SELECT id, name FROM countries

我如何才能最好地实现目标?

2 个答案:

答案 0 :(得分:1)

您可以使用FIELD()功能

SELECT id, name 
FROM countries
ORDER BY FIELD(name,'India','Denmark') DESC

或使用CASE

SELECT id, name 
FROM countries
ORDER BY CASE WHEN name = 'Denmark' THEN 0
              WHEN name = 'India' THEN 1
              ELSE 2 END

答案 1 :(得分:1)

如果您想要按字母顺序排列ORDER作为关注者,您也可以使用此声明

   SELECT id, name 
     FROM countries
     ORDER BY id=8 DESC, id=5 DESC, name ASC