2017-09-29 2 views
0

Ici, j'ai deux tables (rent_property, rent_amenity). Et j'utilise la requête join, où rent_property.id. J'utilise la clé étrangère de rent_amenityrentPropertyId. Ici, je suis un projet immobilier, un projet ayant de multiples commodités, donc j'utilise deux tables.Comment et où ajouter les valeurs d'agrément dans cette réponse json

rent_property:

id  fullName propertyName 
------------------------------- 
1  A   House Name1 
2  B   House Name2 
3  C   House Name3 
4  D   House Name4 

rent_amenity:

rentamenityId   rentPropertyId  amenityName 
-------------------------------------------------------  
1       1     Lift 
2       1     Gym 
3       2     Power backup 
4       4     Gym 

Ma requête SQL

$sql = "SELECT a.id,a.fullName,a.propertyName FROM rent_property a LEFT JOIN rent_amenity b ON a.id = b.rentPropertyId WHERE a.city='1' AND a.propertyType IN ('1','2') AND b.amenityName IN ('Gym') AND a.approveStatus!='Inactive' GROUP BY a.id order by a.id desc"; 

$result = $this->GetJoinRecord($sql); 

Ma fonction dynamique

public function GetJoinRecord($query_string) { 
     $con = $this->DBConnection(); 
     $query = mysqli_query($con, $query_string); 

     if(@mysqli_num_rows($query) > 0) { 
       while($data = mysqli_fetch_assoc($query)) { 
        $record[] = $data; 
       } 

       mysqli_free_result($query); 
     } 

     mysqli_close($con); 
     return $record; 
} 

Sur la base de ma requête SQL, je devrais obtenir deux dossiers, et aussi je reçois correctement mais je ne suis pas en mesure de faire mes résultats attendus, s'il vous plaît voir ci-dessous je vais poster ce que je reçois actuellement des résultats:

{ 
"status": "success", 
"message": "Data Found.", 
"data": { 
    "rent_id": [ 
     { 
      "id": "4", 
      "fullName": "D", 
      "propertyName": "House Name4" 
     }, 
     { 
      "id": "1", 
      "fullName": "A", 
      "propertyName": "House Name1" 
     } 
    ] 
} 
} 

Mon problème principal est que je veux donner l'agrément de réponse aussi, je ne sais pas où je dois ajouter l'agrément dans cette rangée. id 1 ayant deux amenity et id 2 ayant un amenity

Répondre

0

Vous pouvez créer un tableau croisé dynamique pour associer propertyId à amenityId et générer une requête de jointure pour extraire des amentites liés à une propriété spécifique.

+0

Pouvez-vous s'il vous plaît mettre à jour votre réponse, sérieusement je ne suis pas capable de faire –