• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
دستبه بندی ملک براساس اپشن
#1
سلام
من سه جدول دارم
جدول اول property هست،
+-----------------+------------------------ +
| property_name | property_id |
+------------------+-------------------------+
| 1 | پرند |
| 2 | یاس |
| 3 | سجاد |
+---------------+-------------------------- +
جدول دوم option

+-----------------+------------------------ +
| option_name | id |
+------------------+------------------------+
| 1 | اینترنت |
| 2 | تراس |
| 3 | استخر |
+------------------+-----------------------+

جدول سوم property_option


+-----+--------------------+---------------- +
| option_id | property_id | id |
+----+--------------------+-----------------+
| 1 | 1 | 1 |
| 2| 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 1 |
| 5 | 2 | 2 |
| 6 | 3 | 3 |
+----+-------------------+------------------+
جدول سوم به ازای هر اپشن ای دی ملک وای دی اپشن داخلش ذخیره میشه.
حالا من اگه بخوام توسایت برا ساس ای دی اپشن که میگیرم ملک رو فیلتر کنم مثلا مقادیر زیر رو به عنوان اپشن بگیرم وتویک ارایه بریزم،چطوری میتونم ملک رو فیلتر کنم کدی که من دارم اینطوره ولی همش ای دی 1 رو نشون میده.


اپشن ها بعد از گرفتن داخل ارایه زیر ریخته میشه
$option = array(1,2,3);






$option = array(1,2,3);
$count=count($option);
$in = join(',', array_fill(0, $count, '?'));
$select = " SELECT *
FROM property
INNER JOIN property_option ON property.Property_id = property_option.Property_id
WHERE property_option.Option_id
IN ( $in )
HAVING COUNT(DISTINCT property_option.Property_id) = $count

";


$statement = $dbh->prepare($select);
$statement->execute($option);

while ($row = $statement->fetch(PDO::FETCH_ASSOC))

{

echo $row['Property_id'].'<br>';


}
  پاسخ
تشکر شده توسط :
#2
کد:
SELECT p.property_name, o.option_name
FROM option o
INNER JOIN property_option po ON po.option_id = o.id
INNER JOIN property p on po.property_id=p.property_id
این کد کلا پراپرتی ها را براساس آپشن ها میده.
سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

[عکس: ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان