Как бы я превратил этот пример, если оператор else в массив для использования в качестве оператора / функции echo? - PullRequest
0 голосов
/ 31 августа 2011

У меня есть несколько категорий (чисел) в базе данных MYSQL, которые я пытаюсь отобразить и сопоставить с именем категории. например. (1 = горный велосипед, 2 = дорога, 3 = велокросс)

Я думаю, мне нужно создать массив или функцию, чтобы упростить это для себя, когда я повторяю $ 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 ]

3 голосов
/ 01 сентября 2011

попробуйте что-то вроде этого

$event_types = array(1 => 'Mountain Bike', 2 => 'Road', 3 => 'Cyclocross');
echo $event_types[$row_Recordset1['event_type']];
2 голосов
/ 01 сентября 2011

Адаптируйте этот код для этого:

$array = array('Mountain Bike', 'Road', 'Cyclocross');
echo $array[(int) $row_Recordset1['event_type'] -1];
2 голосов
/ 01 сентября 2011

Чистым решением PHP было бы поместить категории в массив, а затем просто разыменовать во время вывода:

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


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

Лучшим решением было бы поместить эти категории в вашу базу данных. Затем вы можете объединить эту таблицу категорий и получить имена категорий вместе с идентификаторами категорий во время запроса:

SELECT ..., categories.name
FROM sometable
LEFT JOIN your_categories ON sometable.categoryID = categories.ID
1 голос
/ 01 сентября 2011

Может быть или не быть более эффективным, в зависимости от того, что вы храните в своей базе данных.

Если у вас есть категория (например, 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" );

Затем используйте тот же метод эха, который я выложил выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...