2017-08-11 14 views
1

私は2つのクエリを使用していますが、間にコードを追加しても機能しません。これはBETWEENを使用する前に私のために働いているコードです。PHP Mysql BETWEENでクエリを選択

これはBETWEENが機能していないコードです。

$result = mysql_query("SELECT name , liking , id , address , description FROM locations WHERE ‘long’ BETWEEN ‘$Slong’ AND ‘$Blong’ AND lat BETWEEN ‘$Slat’ AND ‘$Blat’ AND liking LIKE '%{$likeArray[$newCount]}%'"); 
+0

ロジックをラップするには括弧を使用する必要があります –

+0

@SaadSuri 2つのBETWEEN文のまわりの括弧のような意味ですか? –

+0

はい、希望の結果のように評価する必要があります。 (Slot 'AND' $ Blot ')AND liking LIKE'%{$ likeArray($ blong ')');そして、 [$ newCount]}% ' –

答えて

1

ここにはいくつか問題があります。

まず、mysql_ *関数を使用しないでください。これらの関数は5.5以降で廃止され、7.0では削除されています。あなたの選択肢はmysqli_ *関数で、PDOを使うことができます。私はPDOが好きですが、なぜmysqli_ *を使うのが便利なのか分かります。mysql_のテキスト検索を行い、mysqli_と置き換えると便利です。

今、問題が発生しました。バックティックと一重引用符を使用する必要があるすべての場合、バックティックとフォワードティックを使用しています。列名はバッククォートで( `)を同封しなければならないとテキストは、単一引用符( ')でencolsed以下のようにする必要があります。

$result = mysqli_query(
    "SELECT name , liking , id , address , description FROM locations WHERE `long` BETWEEN '$Slong' AND '$Blong' AND `lat` BETWEEN '$Slat' AND '$Blat' AND `liking` LIKE '%{$likeArray[$newCount]}%'" 
); 

EDIT:また、あなたは広いSQLI(SQLインジェクション)に開かれている - のPDOを使用してPrepared Statementsはこの脅威を排除します。 PHP PDO hereの使用に関する良いチュートリアルがあります。