1

非常に単純な問題のように思えることを理解できないことに、私は頭を悩ませてきました。私は、当社が他のビジネス/会社の連絡先の詳細とビジネス上の連絡先 (フリーランサーまたは以前に追加された会社にリンクされている可能性があります) を保存できるようにする小さなビジネス連絡先システムを作成しています。アラビア語と英語の両方で連絡先の名前またはビジネスの名前を検索できる検索フォーム.何が間違っていますか?

更新: 各クエリ セクションからアラビア語の検索部分を削除すると、UNION クエリが機能します (つまり、"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

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 に答える
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.

編集:括弧をいくつか追加しました。試してみてください。

于 2013-08-28T10:12:21.870 に答える