如何将字符串函数应用于表列?

时间:2010-04-16 09:56:12

标签: php arrays string mysql

作为查询结果的一部分,将返回具有名称的列。我想应用一个函数,以便在我的$ db结果中翻转名字和姓氏的顺序。实现这一目标的最有效方法是什么?

答案可能在于使用foreach函数,array_walk或array_map,但我不知道正确的语法。

此功能的名称为flip:

$name = "Lastname, Firstname";
$names = explode(", ", $name);
$name = $names[1] . " " . $names[0];

$ query与此类似:

$query0="SELECT #__1pgndata.White,  #__1pgndata.Black,  #__1pgndata.ECO, #__1pgndata.Result, #__1pgndata.EventDate, #__1pgndata.Id
  FROM `#__1pgndata` Where #__1pgndata.Id > 155 LIMIT 30"

白色和黑色是玩家名称的列(需要翻转)并且对应于棋子的颜色。相关列是$ ginfo-> White和$ ginfo-> Black。

4 个答案:

答案 0 :(得分:2)

如果你正在谈论它们放在数组中的顺序,你可以反过来选择它们(例如SELECT first_name,last_name,.. FROM users ...)但我建议你使用mysql_fetch_array,这样你会能够按你的意愿访问它们(使用$ row ['first_name'],$ row ['last_name']以你想要的顺序)

答案 1 :(得分:1)

PHP有一个plenty of string functions。您可以使用任何您想要的

答案 2 :(得分:0)

你会提供你的数据库代码吗?

$query0="SELECT  #__1pgndata.Black, #__1pgndata.White,  #__1pgndata.ECO, #__1pgndata.Result, #__1pgndata.EventDate, #__1pgndata.Id

FROM #__1pgndata其中#__ 1pgndata.Id> 155 LIMIT 30“

你也可以这样使用。

答案 3 :(得分:0)

您可以尝试使用MySQL String Functions复制功能。最有可能的候选人可能是LOCATE()的组合,以找到', '的位置,然后是一对SUBSTR()次调用以获取前后的部分,然后使用{{1}将它们重新组合在一起。