如何指定要使用PHP搜索的多个列?

时间:2016-07-02 00:18:59

标签: php mysql

我最近建立了一个工作网站,因为我们的技术人员需要一种简单的方法来找出我们提供服务的属性的键。我已经让网站使用实时搜索(Ajaxlivesearch.com)并且它链接到我的MySQL数据库。一切都很有效,除了它只搜索当前的一列Address列。我希望能够同时搜索两列AddressProperty_Name

这是当前代码,或者至少是处理搜索数据库的部分。

<?php

namespace AjaxLiveSearch\core;

if (count(get_included_files()) === 1) {
    exit('Direct access not permitted.');
}

/**
 * Class Config
 */
class Config
{
    /**
     * @var array
     */
    private static $configs = array(
        // ***** Database ***** //
        'dataSources'           => array(
            'ls_query' => array(
                'host'               => '',
                'database'           => '',
                'username'           => '',
                'pass'               => '',
                'table'              => '',
                // specify the name of search columns
                'searchColumns'      => array('Address'),
                // specify order by column. This is optional
                'orderBy'            => '',
                // specify order direction e.g. ASC or DESC. This is optional
                'orderDirection'     => '',
                // filter the result by entering table column names
                // to get all the columns, remove filterResult or make it an empty array
                'filterResult'       => array(),
                // specify search query comparison operator. possible values for comparison operators are: 'LIKE' and '='. this is required.
                'comparisonOperator' => 'LIKE',
                // searchPattern is used to specify how the query is searched. possible values are: 'q', '*q', 'q*', '*q*'. this is required.
                'searchPattern'      => 'q*',
                // specify search query case sensitivity
                'caseSensitive'      => false,
                // to limit the maximum number of result uncomment this:
                'maxResult' => 10,
                // to display column header, change 'active' value to true
                'displayHeader' => array(
                    'active' => true,
                    'mapper' => array(
                        'Property_Name' => 'Property Name',
                        'Address' => 'Address',
                        'Key' => 'Key',
                        'Property_Manager' => 'Property Manager',
                        'Door_Code' => 'Door Code'
                    )
                ),
                // add custom class to <td> and <th>
                // To hide a column use class 'ls_hide'
                'columnClass' => array(
                    'Count' => 'ls_hide',
                    'Reserve' => 'ls_hide'
                ),
                'type'               => 'mysql',
            ),

出于显而易见的原因,我已将连接信息删除了。

我尝试了搜索列表&#39; =&GT;数组(&#39;地址&#39; AND&#39; Property_Name&#39;),认为会搜索两列,但根本不起作用。

2 个答案:

答案 0 :(得分:1)

我不熟悉Ajaxlivesearch,但看起来searchColumns需要一个数组,所以:

 'searchColumns' => array('Address', 'Property_Name'),

可能会奏效。

array('Address' AND 'Property_Name')是语法错误。)

答案 1 :(得分:0)

当然,一旦我发布问题,我就会弄清楚,也许它会帮助别人。要查看一个数组中的多个列,您需要用逗号(,)分隔它们,工作代码是:

&#13;
&#13;
public static void main(String[] args) {
    Check obCheck = new Check();
    obCheck.nonstaticMethod();

    System.out.println(obCheck.nonstaticVariable);
}
&#13;
&#13;
&#13;