如何将此示例if else语句转换为数组以用作echo语句/函数?

时间:2011-08-31 19:58:10

标签: php mysql arrays function

我在MYSQL数据库中有一些类别(数字),我试图回应并与类别名称匹配。例如。 (1 =山地自行车,2 =道路,3 = Cyclocross)

我想我需要制作一个数组或函数,以便在我回复 $ event_type 时让自己变得更容易,你们有什么想法?

if ($row_Recordset1['event_type'] == '1') echo 'Mountain Bike'; 
else if ($row_Recordset1['event_type'] == '2') echo 'Road'; 
else if ($row_Recordset1['event_type'] == '3') echo 'Cyclocross'; 

提前致谢!

4 个答案:

答案 0 :(得分:3)

尝试这样的事情

$event_types = array(1 => 'Mountain Bike', 2 => 'Road', 3 => 'Cyclocross');
echo $event_types[$row_Recordset1['event_type']];

答案 1 :(得分:2)

纯粹的PHP解决方案是将类别放入数组中,然后在输出时解除引用:

$categories = array(
   1 => 'Mountain Bike',
   2 => 'Road',
   3 => 'Cyclocross'
);


echo $categories[$row_Recordset1['event_type']];

更好的解决方案是将这些类别放入数据库中。然后,您可以连接该类别表,并在查询时提取类别名称以及类别ID:

SELECT ..., categories.name
FROM sometable
LEFT JOIN your_categories ON sometable.categoryID = categories.ID

答案 2 :(得分:2)

为此修改此代码:

$array = array('Mountain Bike', 'Road', 'Cyclocross');
echo $array[(int) $row_Recordset1['event_type'] -1];

答案 3 :(得分:1)

根据您在数据库中存储的内容,它可能会更高效,也可能不会更高效。

如果您在每行中都有类别(例如1)和类别标签(例如山地自行车):

$categories = array();

$result = mysql_query( "SELECT * FROM yourTable" );
while( $row = mysql_fetch_assoc( $result )
     $categories[$row['event_type']] = $row['CategoryName'];

使用该方法,您的结束数组将如下所示:

array(1 =>“Mountain Bike”,2 =>“Road”,3 =>“Cyclocross”);

你可以这样做:

echo( $categories[$row_Recordsset1['event_type']] ); // Outputs key value in array

<强>可替换地,

您可以自己填充数组:

$categories = array( 1 => "Mountain Bike", 2 => "Road", 3 => "Cyclocross" );

然后使用我在上面发布的相同回声方法。