gpt4 book ai didi

php - PHP数据库结构两张表

转载 作者:行者123 更新时间:2023-11-29 13:02:54 25 4
gpt4 key购买 nike

好的。我有一整天都在努力处理这两张 table 。我最终得到的东西在某些情况下有效,而在其他情况下则无效。因此,我将解释这两个表的关系。

两个表的说明:

对象:这个表的作用是保存很多对象,这些对象包含有关它的信息。它包含名称、图像源等。

House_room1:该表用于我的应用程序中的所有用户。每个用户都用一个 user_id 表示。

所有与登录用户具有相同user_id的对象都将被打印出来。 我在这里的意思是,用户拥有的所有对象都应打印出来。因此,有这两个表示例:

对象(表)

Object

house_room1( table )

house_room1

因此,如果 user_id=1,则使用该特定 user_id 打印 house_room1 中的所有内容。然而有一个钩子(Hook)!

这些东西一次只能打印一份。因此应该有一个迭代器来遍历用户拥有的所有对象。

这是我迄今为止所做的查询:

$stmt->prepare('SELECT ref_id, x, y, z, src, rotation, link, div_id 
FROM house_room1
INNER JOIN objects
ON house_room1.object_id=objects.object_id
WHERE house_room1.object_id= ? AND house_room1.user_id = ?');
$stmt->bind_param('ii', $i, $GLOBALS['userid_v']); // $i is the iterator

然而,这并没有达到我的预期,而且很难预测会发生什么。希望在这里找到一些帮助,提前致谢!

编辑:

$stmt = $mysqli->stmt_init();
$stmt->prepare('SELECT ref_id, x, y, z, src, rotation, link, div_id,objects.object_id
FROM house_room1
INNER JOIN objects
ON house_room1.object_id=objects.object_id
WHERE house_room1.user_id = ?');
$stmt->bind_param('i', $GLOBALS['userid_v']);

if ($stmt->execute()) {
while($row = $stmt->fetch()) {
if ($row['link'] != "") {
echo '<a href="' . $row['link'] . '"> ';
}
if ($row['div_id'] != "") {
echo '<a href="#" onClick="' . $row['div_id'] . '"> ';
}
echo '<img src="' . $row['src'] . $row['rotation'] .'.png" id="object' . $row['ref_id'] . '" class="object' . $row['ref_id'] . '" rel="'.$row['rotation'].'" alt="'.$row['ref_id'].'" style="position:absolute; left:' . $row['x'] . 'px; top:' . $row['y'] . 'px; z-index:'. $row['z'] . ';">'; if ($row['x'] != 0) { echo'</a>'; }
}
} else {
echo 'Something went terrible wrong' . $mysqli->error;
}

这会打印图像,但它在 $row['src'] 或任何 $row 点上没有任何值?

最佳答案

您通常会返回该用户的所有结果(而不是通过对象 ID),然后使用 ->fetch_assoc() 在某个位置返回一行(1 个对象)时间,然后循环播放。一旦没有更多结果,fetch->() 将返回 false,因此您可以将其用作循环的退出条件。您也可能没有执行查询。而且您不应该在循环内准备查询,因为这首先会消除准备好的查询的效率。

如果你想一次打印一个对象,你应该这样做

$stmt->prepare('SELECT ref_id, x, y, z, src, rotation, link, div_id,objects.object_id 
FROM house_room1
INNER JOIN objects
ON house_room1.object_id=objects.object_id
WHERE house_room1.user_id = ?');
$stmt->bind_param($GLOBALS['userid_v']);
$stmt->execute();
$stmt->bind_result($ref_id,$x,$y,$z,$src,$rotation,$link,$div_id,$objectid);
while($stmt->fetch()) {
// each of the variables in bind_result now reference the current row
}

关于php - PHP数据库结构两张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23096823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com