1

友人のために働いている物件のウェブサイトを検索しようとしています。データベースでは、プロパティ タイプは ID 番号で名前が付けられています。つまり、家 = 30、フラット = 8、段々になった =1 などです。

一部が値 2 の戸建住宅で、値が 30 の住宅などがある場合、データベースからすべてのプロパティを取得するにはどうすればよいですか :) 動けなくなってしまいました..lol これまでのところ、機能していないものがあります...

$bedrooms = $_GET['bedrooms'];
$pricefrom = $_GET['pricefrom'];
$priceto = $_GET['priceto'];
$proptype = $_GET['proptype'];

if($proptype == 'house'){
$search_propsubid = array('1,2,3,4,5,6,21,22,23,24,26,27,30');
}elseif($proptype == 'flat'){
$search_propsubid = array('7,8,9,10,11,28,29,44');
}elseif($proptype == 'bungalow'){
$search_propsubid = array('');
}


$sql = mysql_query("SELECT * FROM `properties` WHERE `PROP_SUB_ID`='$search_propsubid' AND `BEDROOMS`='$bedrooms' AND `TRANS_TYPE_ID`='1' HAVING `PRICE` BETWEEN '$pricefrom' AND '$priceto' ORDER BY `UPDATE_DATE` DESC");

お時間をいただきありがとうございます。誰かが私を正しい方向に向けてくれることを願っています。よろしくスティーブ

4

2 に答える 2

1

配列の内破を試みることができます:

$search_propsubid = array('1,2,3,4,5,6,21,22,23,24,26,27,30');
$comma_separated = implode(",", $search_propsubid);
$sql = mysql_query("SELECT * FROM `properties` WHERE `PROP_SUB_ID` in ($comma_separated) ...

これがうまくいかない場合は、ニュースで戻ってきてください。

于 2012-05-27T01:31:17.137 に答える
1

MySql IN()比較演算子を使用して、値のリストに一致するものをすべて選択できます。

$sql = mysql_query("
  SELECT * 
  FROM `properties` 
  WHERE `PROP_SUB_ID` IN (" .implode(",", $search_propsubid). ")
  AND `BEDROOMS`='$bedrooms' 
  AND `TRANS_TYPE_ID`='1' 
  HAVING `PRICE` BETWEEN '$pricefrom' AND '$priceto' 
  ORDER BY `UPDATE_DATE` DESC
");

を仮定すると$proptype == 'flat'、出力は次のようになります。

SELECT *
FROM `properties` 
WHERE `PROP_SUB_ID` IN (7,8,9,10,11,28,29,44) 
...
于 2012-05-27T01:33:55.823 に答える