作为查询结果的一部分,将返回具有名称的列。我想应用一个函数,以便在我的$ 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。
答案 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}将它们重新组合在一起。