我有两个名字和姓氏的文本框。管理员可以通过相应文本框中的名字或姓氏来搜索记录。我发一个api调用发送名字或姓氏来获取记录。
我想要的只是提供一个文本框。在这里,admin可以键入名字或姓氏或全名。我该如何理清这些名字并拨打api电话。 如果用户只输入了第一个名字,那么我只在api通话中发送第一个名字。如果他提供了两个名字,我会发送两个名字。我首先检查他输入了哪个文本框,因此我进行了api调用
$params = array(
'return' => array(
'first_name',
'display_name',
'image_URL',
'last_name',
'phone',
'email'
),
'version' => 3,
'sequential' => 1,
'limit' => 25,
'first_name' = "Shrinidhi",
'last_name' = "Kulkarni"
);
$contact = civicrm_api('Contact', 'get', $params);
答案 0 :(得分:1)
试试这个:
$sql = "SELECT 'first_name','display_name','image_URL','last_name','phone','email' from Contact where 'shrinidhi' in (first_name,last_name)";
CRM_Core_DAO::executeQuery($sql);
供进一步参考: http://www.vedaconsulting.co.uk/civicrm/civicrm-executing-custom-sql/
答案 1 :(得分:1)
你应该使用像这样的查询:
SELECT CONCAT(firstname, lastname) AS fullname FROM tablename WHERE fullname LIKE '%input%';
所以你可以找到带有一个输入字段的firstname和lastname。
享受您的代码!
答案 2 :(得分:0)
您可以检查输入值中的whitesapce,并使用空格的位置提取名字和姓氏。如果输入值中没有空格,则应仅使用名字调用API。