我有一些代码和数据库并没有真正按照我想要的方式一起说话。但是从这些信息中,你可能会有所帮助。 我有一个MySQL数据库,如下所示:
house_room1:
对象:
然后我使用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张图片而最后一张图片丢失。我想这与两个表没有相同数量的行这一事实有关,但我不太确定,如果是这种情况,我有一些数据库问题。我希望你能理解我的问题并提出一些意见/建议,提前谢谢。
答案 0 :(得分:1)
您为什么加入object_id
- &gt; ref_id
?好像它应该是house_room1.object_id=objects.object_id