我正在尝试通过一个表迭代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 ?>
我正在尝试从TABLE_A中获取“建筑物”的内容,并检查其是否与来自TABLE_B中的“建筑物”的内容相匹配。最终,如果内容匹配,我想计算他们具有的匹配项数并将其显示在表格单元格中。我不认为这是正确的方法,因为$ availabilities数组甚至没有正确的信息-但是使用while会使表重复。我不想显示来自TABLE_B的任何信息,我只想针对它引用TABLE_A并显示一个计数。
最佳答案
您的代码可能会引起误解。您正在将查询结果存储在$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";