2017-02-06 8 views
0

residential_projects (имя таблицы)Как получить результаты, одно свойство на двух столах

id City Project_name 

1  1  Residential Property 1 

residential_units_details (имя таблицы)

id residential_project_id cityId unitType price 
1   1     1  1 BHK 50000 
2   1     1  2 BHK 100000 
3   1     1  3 BHK 150000 

Результат мне нужно как этот

Property id =1 
1 BHK = 50000 (price) 
2 BHK = 100000 (price) 
3 BHK = 150000 (price) 

Я написал такой запрос, но я не получаю корр. ЭСТ ответ, как можно это сделать pleaase я тратить больше времени на это, пожалуйста, сообщите мне решение Моего запроса

$unitType = trim($_GET['unitType']); 
    $first_second_tables = "SELECT * FROM residential_projects res_project JOIN residential_units_details res_unit ON res_project.id = res_unit.residential_project_id WHERE City='1'"; 
    if($unitType!='') 
     { 

      $first_second_tables .=" AND (unitType='$unitType')"; 
     } 

$sql=mysql_query($first_second_tables); 
while($res = mysql_fetch_assoc($sql)){ 
    echo "Proprty ID=".$res['id'].'<br>'; 
    echo "Unittype=" . $res['unitType'].'<br>'; 
    echo "Price=" . $res['price'].'<br>'; 
} 

я получаю ответ

Proprty ID=1 
Unittype=1 
Price=50000 
Proprty ID=2 
Unittype=2 
Price=100000 
Proprty ID=3 
Unittype=3 
Price=150000 

я думаю, здесь печать всех ДАННЫХ в второй таблицах я не знаю, как получить мое требование, ответьте мне, помогите мне

Обновлен код var_dump ($ res);

array(3) { 


["unitType"]=> 
    string(1) "1" 
    ["price"]=> 
    string(5) "50000" 
    ["Project_name"]=> 
    string(22) "Residential Property 1" 
} 
array(3) { 
    ["unitType"]=> 
    string(1) "2" 
    ["price"]=> 
    string(6) "100000" 
    ["Project_name"]=> 
    string(22) "Residential Property 1" 
} 
array(3) { 
    ["unitType"]=> 
    string(1) "3" 
    ["price"]=> 
    string(6) "150000" 
    ["Project_name"]=> 
    string(22) "Residential Property 1" 
} 
array(3) { 
    ["unitType"]=> 
    string(1) "4" 
    ["price"]=> 
    string(4) "4343" 
    ["Project_name"]=> 
    string(21) "Residential Project 2" 
} 
array(3) { 
    ["unitType"]=> 
    string(1) "4" 
    ["price"]=> 
    string(4) "5353" 
    ["Project_name"]=> 
    string(21) "Residential Project 2" 
} 
+0

Пожалуйста, объясните больше, потому что ваша колонка путанице & Что такое '' res_project' в select' запросе. Не используйте 'mysql *' функцию ti's устарела в php 5.5 и удалена из php 7, предпочитает 'mysqli' или' PDO'. см. это [ссылка] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) – gaurav

+0

У меня есть две таблицы, имя proprty, хранящиеся в одной таблице (homes_projects), и стоимость недвижимости и тип единицы хранения, хранящиеся в других таблицах (living_units_details), у меня есть одно свойство и то же свойство, у меня есть другой тип единицы (BHK), теперь я хочу отображать результаты, такие как 1 BHK, означает, какая цена, а 2 BHK означает какова цена –

+0

Я написал запрос на соединение для подключения двух таблиц –

ответ

0

SQL-запрос для вывода является

SELECT residential_units_details.unitType , residential_units_details.price , residential_projects.project_name 
FROM residential_units_details 
LEFT JOIN residential_projects 
ON residential_units_details.residential_project_id = residential_projects.id 
WHERE City = '1' 

, потому что вы хотите только unitType, price, project_name поэтому нет необходимости использовать * для этого вы должны использовать left Join.

Как вы прокомментируете вы хотите poject_name на заголовок без повторения, так что вы можете попробовать

$str = '' ; /* storing balnk string for matching */ 

while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ 
     if(strcmp($row['project_name'],$str) === 0){ /* if the project_name already store it will return 0 */ 

     echo $row['unittype']," = ",$row['price'],"<br>" ; 

     } else { 
     echo $row['project_name'],"<br>"; 
     echo $row['unittype']," = ",$row['price'],"<br>" ; 
     $str = $row['project_name']; /* here we are storing the project_name */ 
     } 
    }