MySQL引用INNER JOIN并获取数据

时间:2014-02-23 20:42:26

标签: php mysql database

我有一些代码和数据库并没有真正按照我想要的方式一起说话。但是从这些信息中,你可能会有所帮助。 我有一个MySQL数据库,如下所示:

house_room1:

enter image description here

对象: enter image description here

然后我使用PHP预处理语句建立数据库连接,该语句使用INNER JOIN将这两个表连接在一起object_id - > ref_id

正如您所看到的,我在objects表中有5个不同的图像,我用PHP显示,但是我希望其中一个图像,object_id = 2的图像显示两次。

我的PHP代码如下所示:

 $n = 0;
    $item_number = 0;
    //Array which iterates over all objects in a given users object_id
    $ref[$n];

    for ($i = 0; $i < $rowsize; $i++) {
        if ($i == $ref[$n]) {
            $stmt = $mysqli->stmt_init();
            $stmt->prepare('SELECT x, y, src, link, div_id FROM house_room1 INNER JOIN objects ON house_room1.ref_id=objects.object_id WHERE house_room1.ref_id = ?'); 
            $stmt->bind_param('i', $i
            );
            if ($stmt->execute()) {
                $stmt->bind_result($x, $y, $src, $link, $div_id);
                while($stmt->fetch()) {
                    if ($link != "") { 
                        echo '<a href="' . $link . '"> '; 
                    }
                    if ($div_id != "") { 
                        echo '<a href="#" onClick="' . $div_id . '"> '; 
                    }
                    echo '<img src="' . $src . '"class="item' . $item_number . '" style="position:absolute; left:' . $x . 'px; top:' . $y . 'px;">'; if ($x != 0) { echo'</a>'; }
                }
            } else {
                echo 'Something went terrible wrong' . $mysqli->error;
            }
            $stmt->close();
            $n++;
            $item_number++;
        }
    }

只会显示5张图片而最后一张图片丢失。我想这与两个表没有相同数量的行这一事实有关,但我不太确定,如果是这种情况,我有一些数据库问题。我希望你能理解我的问题并提出一些意见/建议,提前谢谢。

1 个答案:

答案 0 :(得分:1)

您为什么加入object_id - &gt; ref_id?好像它应该是house_room1.object_id=objects.object_id