php,mysql数据转换

时间:2014-01-28 12:54:27

标签: php mysql arrays

首先,对不起我的英语。我是这些东西的初学者,我有一个简单的问题。我在mysql中存储数据。一列包含格式(例如)的数据:a,b,c,d或a,c,d或a,d ... 现在,在查询之后我想更改此值:

 a = apple, b=blueberry, c=cat, d=dog ...

例如,如果列包含

 a,d, 
我想更改并打印apple,dog ...

再一次,抱歉我的英语。请问一个人是否没有得到这个问题。

感谢。

5 个答案:

答案 0 :(得分:2)

$map = array('a' => 'apple', 'b'=>'blueberry', 'c'=>'cat', 'd'=>'dog');

$column = 'a,d'; //your data here

$result = strtr($column, $map);

更新

$arr = explode(',', $result);
$links = array();
foreach($arr as $item) { 
$links[] = $commonURLpart . $item; 
}

答案 1 :(得分:1)

您可以利用REPLACE()字符串函数的强大功能: 用法:

REPLACE(str,from_str,to_str)

返回字符串str,其中出现所有字符串from_str 由字符串to_str替换。此外,REPLACE()执行区分大小写 搜索from_str时匹配。

网址:http://dev.mysql.com/doc/refman/5.1/en/string-functions.html

例如:SELECT REPLACE('www.mysql.com', 'w', 'Ww');将输出WwWwWw.mysql.com

更新:上述方法在MySQL级别的运行时期间更改内容。 如果这不相关,您可以使用str_replace() PHP函数,使用简单的PHP字符串替换魔法在运行时期间更改输出的内容。这样,您将原始数据保存在数据库中,并输出所需的替换字符串。

答案 2 :(得分:1)

我建议您创建另一个表格,如:

+--------+-----------+
| letter | word      |
+--------+-----------+
| a      | apple     |
| b      | blueberry |
| c      | cat       |
| d      | dog       |
+--------+-----------+

然后执行类似的连接查询:

SELECT
    *
FROM
    `table1` as t1
JOIN
    `table2` as t2
ON
    t1.letter = t2.word

这会自动将您的信件转换为所需的字词。

PS:如果您可以发布原始表数据的示例,我可以使查询更容易理解。

答案 3 :(得分:0)

您可以使用if条件来执行此操作,您需要自定义值,例如

<?PHP
---prev code

$db_col     = strtolower($row['col']);
if($db_col=='a'){
   echo 'Apple';
}elseif($db_col=='b'){
    echo 'Blueberry'    ;
so on ........  
?>

答案 4 :(得分:0)

我假设您在关联数组中有查询结果...

所以,首先是“循环”阵列:

while($row = mysql_fetch_assoc($replace_with_name_of_associative_array))
{
   if (strtolower($row['repalace_with_column_name'])=='a'){ //strtolower just in case you have "A" and "a", "B" and "b",...
   echo 'Apple';
   }elseif(strtolower($row['repalace_with_column_name'])=='b'){
     echo 'Blueberry';
     }
   //and so on...

}