我正在尝试通过一个表迭代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";

10-04 13:38