1

由于无法理解似乎是一个非常简单的问题,我一直在扯头发。我正在制作一个小型业务联系人系统,该系统将使我们公司能够存储其他业务/公司的联系方式以及业务联系人(可以是自由职业者或链接到以前添加的公司。我想做的是拥有一个搜索表单,使我能够以阿拉伯语和英语搜索联系人姓名或企业名称。我做错了什么?

更新:如果我从每个查询部分中删除阿拉伯语搜索部分(即我删除了“OR contact_name_arabic LIKE '%”.$queryString.“%'”以及“OR company_name_arabic LIKE '%”.$queryString. "%'")

这变得越来越复杂:/

表 1:公司

id   |   company_name   |   company_name_arabic
-----------------------------------------------
1    |   Red Arrow      |   السهم الأحمر
2    |   White Tower    |   البرج الأبيض
3    |   Mobilex        |   موبيليكس

表 2:联系人

id   |   company_id   |   contact_name   |   contact_name_arabic
----------------------------------------------------------------
1    |       1        |   Saeed Adam     |   سعيد آدم
2    |       1        |   Andrew White   |   أندرو وايت
3    |       2        |   Steve Rogers   |   ستيف روجرز

这是 MySQL 语句:

$querystring =  "(SELECT contact_name, contact_name_arabic
                            FROM CONTACTS
                            WHERE contact_name LIKE '%".$queryString."%' 
                            OR contact_name_arabic LIKE '%".$queryString."%')
                            UNION
                            (SELECT company_name, company_name_arabic
                            FROM COMPANIES
                            WHERE company_name LIKE '%".$queryString."%' 
                            OR company_name_arabic LIKE '%".$queryString."%')";

谢谢!

4

2 回答 2

0
$querystring =  "SELECT contact_name, contact_name_arabic
                        FROM CONTACTS
                        WHERE (contact_name LIKE '%".$queryString."%' 
                        OR contact_name_arabic LIKE '%".$queryString."%')
                        UNION
                        SELECT company_name, company_name_arabic
                        FROM COMPANIES
                        WHERE (company_name LIKE '%".$queryString."%' 
                        OR company_name_arabic LIKE '%".$queryString."%')";

去掉括号,Mysql 会尝试运行 (SELECT blah which is not valid.

编辑:我添加了一些括号,试试看。

于 2013-08-28T10:12:21.870 回答
0

在您的 mysql 查询生成器中尝试此查询

(SELECT contact_name, contact_name_arabic
                            FROM CONTACTS
                            WHERE contact_name LIKE '%e%' 
                            OR contact_name_arabic LIKE '%e%')
                            UNION
                            (SELECT company_name, company_name_arabic
                            FROM COMPANIES
                            WHERE company_name LIKE '%e%' 
                            OR company_name_arabic LIKE '%e%')

如果它的工作检查值来自变量 $queryString。

也不需要检查字段 company_name_arabic

(SELECT contact_name, contact_name_arabic
                                FROM CONTACTS
                                WHERE contact_name LIKE '%e%')
                                UNION
                                (SELECT company_name, company_name_arabic
                                FROM COMPANIES
                                WHERE company_name LIKE '%e%' )
于 2013-08-28T11:32:54.883 回答