我使用一个下拉列表,当用户选择值转到DB(phpmyadmin)时,该值是ISO 3位国家/地区代码。现在对于美国,db 有美国,不同的国家不同。
在我的页面中,我将国家代码定义为国家名称,如下所示
$nm = array(
'GBR' => "United Kingdom",
'USA' => "United States",
'UMI' => "United States Minor Outlying Islands",
'URY' => "Uruguay",
'UZB' => "Uzbekistan",
);
foreach($nm as $key => $val)
define($key, $val);
正如我从上面的代码中了解到的那样,如果我echo USA; it is printing United States
但是当我从数据库中获取国家/地区代码并打印代码时,它打印的是相同的代码,但不是定义的值。我非常困惑为什么会发生这种情况。请建议我。
我希望当我从数据库打印国家/地区代码时,它应该打印定义值
我正在获取查询
$staff_citizen = mysql_fetch_array(mysql_query("select staff_citizen from staff_record where staff_code = '254125'"));
echo $staff_citizen[0];
正如Itsols所问的,字段名称是staff_id (国际), staff_name (瓦尔查尔), staff_code(国际), staff_citizen(瓦尔查尔), staff_batch(国际)
您有两种简单的方法可以在不使用定义的情况下实现此目的。
方法一:
当您读取staff_citizen字段的字段名称时,只需将其从数组中删除即可,而无需定义。例如:假设$Fields
是你得到的,下面的代码应该可以做到这一点。
echo $nm[ $Fields["staff_citizen"] ];
方法2:在不使用数组的情况下,您可以拥有第二个包含国家/地区代码和名称的表。然后执行一个简单的内部联接查询并获取名称。例如:假设您有第二个表countries
code
和country
作为字段,您可以像这样进行查询:
Select * from
countries inner join staff
on code = staff_citizen
然后只需使用 php 打印国家/地区字段。这里不需要数组。