2012-03-29 5 views
0

だから、基本的に私はチェックアウトできる都市の名前を持つウェブサイトを持っています。私はそれらを1つのキーの下のローカルストレージに保存します。そして、私はそれらをAjax経由で私の下の私のPHPスクリプトに送ります。そしてphpで都市変数 "、"を爆発させ、与えられたものに応じて都市をフィルタリングします。しかし、今私はこれを手動で行う方法しか知りません。たとえば、city [0]、city [1]などです。そこにある変数の数に応じて、変数をmysqlステートメントに入れていく方法はありますか?私が混乱している場合、私は残念ですが、私は残念です残念です。どんな助けもありがとう。私はあなたが求めていると思うものから、PHPでいくつの変数に応じてmysqlステートメントを変更する方法

<?php 
$con = mysql_connect("localhost", "test", "test") or die('could not connect to mysql'); 

mysql_select_db("test", $con) or die('could not find database'); 


$city2 = $_POST['city2']; 

$cities = explode(",", $city2); 

$rep2 = $_POST['rep2']; 

$status2 = $_POST['status2']; 

$size2 = $_POST['size2']; 

$type2 = $_POST['type2']; 

$lat2 = $_POST['lat2']; 

$long2 = $_POST['long2']; 

$radius2 = $_POST['radius2']; 

if ($city2 == '') { 
    $city_stat = " city RLIKE '.*' "; 
} else { 
    $city_stat = " (city='$cities[0]' OR city='$cities[1]') "; 

} 


if ($radius2 == '') { 
    $radius_stat = '10'; 
} else { 
    $radius_stat = $_POST['radius2']; 

} 


if ($size2 == '') { 
    $size_stat = ''; 
} else { 
    $size_stat = " AND size='$size2' "; 

} 

if ($rep2 == '') { 
    $rep_stat = ''; 
} else { 
    $rep_stat = " AND rep='$rep2' "; 

} 


if ($status2 == '') { 
    $status_stat = ''; 
} else { 
    $status_stat = " AND status='$status2' "; 

} 



$result = mysql_query("SELECT lat,lng,id,rep,rep_num,name,city,state,zip,address,status,category,size FROM test WHERE $city_stat $rep_stat $size_stat $status_stat LIMIT 0 , 50 "); 

while ($array = mysql_fetch_assoc($result)) { 
    $array_json[] = $array; 




} 


echo json_encode($array_json); 
?> 

答えて

2

がある都市の数が可変であること、あなたは市がそれらのいずれかとすることができるという条件を設定したいかもしれないということです。

は、ここに私のコードです。

ので、代わりの:

$city_stat = '(city IN ('.implode(',',$cities).'))'; 
+2

WHEREで手動で入力するよりもはるかに優れ:

$city_stat = " (city='$cities[0]' OR city='$cities[1]') "; 

あなたはこのような何かを行うことができます。 –

+0

これは最善の方法でしょうか? –

+0

私はこれを試してみると、これは結果が返されません、これはSELECT緯度、lng、ID、rep、rep_num、名前、都市、州、郵便番号、住所、ステータス、カテゴリ、サイズから病院WHERE(都市IN Abington))LIMIT 0、50 null –

関連する問題