2014-01-10 2 views
0

테이블을 통해 2 개의 배열에서 정보를 반복하려고합니다. 두 테이블 모두 동일한 "건물"행을 가지고 있으며 테이블의 한 셀에 대해 해당 행의 내용을 비교하려고합니다. 내 코드는 다음과 같습니다 : 나는 TABLE_A에서 "건물"의 내용을하고 TABLE_B에서 "건물"의 내용과 일치하는지 확인하기 위해 노력하고있어2 배열 반복 및 비교

 <?php 
     $sql = "SELECT b.building, a.building FROM cms_TABLE_B b, cms_TABLE_A a WHERE a.building = b.building"; 
     $result = $database->query($sql); 
     $availabilities[] = $database->fetch_array($result); 
     ?> 

     <?php foreach ($TABLE_ARecords as $record): ?> 

     <div class="table-row"> 
      <div class="property"><span><?php echo htmlencode($record['address']) ?></span></div> 
      <div class="availabilities"><span><?php if(in_array($record['building'], $availabilities)) { echo "success"; } else { echo "fail"; } ?></span></div> 
     </div> 

     <?php endforeach ?> 

. 궁극적으로 콘텐츠가 일치하는 경우 해당 콘텐츠의 개수를 계산하여 표 셀에 표시하고 싶습니다. $ availabilities 배열에도 올바른 정보가 없기 때문에 나는 올바른 방법을 사용하지 않을 것이라고 생각하지만 while을 사용하면 테이블 자체가 반복됩니다. TABLE_B의 정보를 표시하고 싶지 않습니다. TABLE_A를 참조하여 개수를 표시하고 싶습니다.

+0

잘 배열에 필요한 건물이 있다면, 당신은 얼마나 많은 (count ($ array))를 볼 수있는 PHP의 카운트 기능을 사용할 수 있습니다. 건물에 대한 전체 정보가 필요하지 않고 일치 항목 수만 필요하면 쿼리에서 해당 항목을 계산하고 해당 수만 반환해야합니다. SELECT count (*) FROM cms_TABLE_B b, cms_TABLE_A a WHERE a.building = b. building –

답변

2

코드가 약간 오도 될 수 있습니다. 당신은 $availabilities[]에서 쿼리의 결과를 저장하는 아직 당신은 $TABLE_ARecords 통해 반복되는

만큼 쿼리가 올바른지, 당신이 당신의 표는 대한 요청, 쿼리의 count($availabilities)

말하기를 사용하여 수를 얻을 수 있습니다 건물의 'address'. 당신이 찾고있는 쿼리가 다음과 같이 될 것이라고 생각합니다.

$sql = "SELECT a.building, a.address FROM cms_TABLE_A a 
     LEFT JOIN cms_TABLE_B b ON a.building = b.building"; 
1

"일치하는 번호"이상을 인쇄하려고하는 것처럼 보입니다.

어디에서 $ record [ '주소']를 얻고 있습니까? 쿼리에서 주소 정보를 얻는 위치는 없습니다.

여기에 맞춰보세요. 나는 할 것이다 :

$query = "SELECT a.building,a.address,a.otherInfo FROM cms_TABLE_B b, cms_TABLE_A a WHERE a.building = b.building"; 
$result = $database->prepare($query); 
$result->execute(); 
while($row = $result->fetch()) 
{ 
     echo "<tr><td>" . $row['building'] . "</td><td>" . $row['address'] . "</td><td>" . $row['otherInfo'] . "</td></tr>"; 
    //or whatever table format/div format you want to use. 
} 
+2

궁금한 점이 있습니다 만, 준비되지 않은 성명서를 사용하는 이유는 무엇입니까? 이것에 어떤 이점이 있습니까? – Joe

+1

당신은 필요가 없습니다. 나는 습관적으로 ... – bart2puck