2

私は 2 つのテーブルから 2 つのクエリを持っています。1 つはプロパティで、2 番目はプロパティのイメージです。

PropertyIDフィールドは、PK--->FK の関係を持つ両方のテーブルで使用できます。

今、私の質問はここにあります。受け取ったプロパティIDの値をどのように使用できますか

最初のクエリを実行し、それを 2 番目のクエリで使用して、各プロパティの画像を取得します。

コードを書きましたが、次のエラー メッセージが表示されます。

注意: C:\xampp\htdocs\Scale-Property\spd\index.php で非オブジェクトのプロパティを取得しようとしています .......

これが私のコードです:

<?php
  require_once('../Admin Panel/db.php');
  if(isset($_POST['Province']) && isset($_POST['District']) && isset($_POST['radio']))
  {
      $provincename=$_POST['Province'];
      $districtname=$_POST['District'];
      $propertystatus=$_POST['radio'];
      $query = "SELECT 
    properties.PropertyID,
    properties.PropertyName,
    some other fields......,

    Provinces.ProvinceName,
    districts.DistrictName,
    pds.PDName,

    propertyimages.PropertyID 

   FROM properties, provinces, districts, pds, propertyimages



   WHERE Provinces.ProvinceID=Properties.ProvinceID
   AND   districts.DistrictID=Properties.DistrictID
   AND   pds.PDID=properties.PDID
   AND   ProvinceName='".$provincename."'
   AND   DistrictName='".$districtname."'
   AND   PropertyDealType='".$propertystatus."'  


  ORDER BY properties.PropertyID";

      $queryrun= $connection->query($query); // first query run in here

      while ($row= $queryrun->fetch_assoc()) // in here trying to store the propretyID
      {

      if( $connection->error ) exit( $connection->error );
      $count= $queryrun->num_rows;
       echo 'You Have Got <b>'. $count .'  </b>out of 326 Records';

      while($row = $queryrun->fetch_assoc()) 
      {  
      $imagequery ="SELECT PropertyID, ImagePath, ImageName, FROM properties WHERE PropertyID = '".$row['PropertyID']."'"; 

      // Now i want to use the stored value of propertyID in here for retrieving the 
         Images of related property
      }

       $imagequery_run= $connection->query($imagequery);    
          if($imagequery_run->num_rows > 0)  
              {
                  while ($imagerow = $imagequery_run ->fetch_assoc()) 
                  {

  ?>

  <div class="propertywrapperviewmore">
     <div class="propertysingleimageviewmore">
     <a href="property.php?PropertyID=<?php
      echo htmlentities($imagerow['PropertyID']) ?>&PropertyID=<?php echo htmlentities($propertyrow['PropertyID']) ?>">

                     <img src="<?php echo htmlentities($imagerow['ImagePath'])  ?>" width="227" height="147" alt="<?php echo htmlentities($imagerow['ImageName']) ?>" ></a>
     </div>

     <div class="propertyIDviewmorelablevalue">
               <div class="propertyIDL">Property ID:</div>
               <div class="propertyIDV"><?php echo $row['PropertyID']?></div>
     </div>
     <div class="propertyIDviewmorelablevalue">
               <div class="propertyIDL">Property Name:</div>
               <div class="propertyIDV"><?php echo $row['PropertyName']?></div>
     </div>


  </div>   

  <?php
      }
  }
  }
  }

?>      
4

1 に答える 1

0

Burhan Khalid が提案したように、次のようにテーブルに参加する必要があります。

select [listOfFields]
from properties p
join propertyimages pi 
on p.propertyid = pi.propertyid
where [youWhereClauses]

on 部分がテーブルの PK と FK をリンクする場所。ここで mysql の構文を確認してください: http://dev.mysql.com/doc/refman/5.0/en/join.html

于 2013-06-03T12:33:48.547 に答える