【发布时间】:2019-09-30 06:10:19
【问题描述】:
我仍在尝试修复我的详细信息页面,我需要再修复它。
我从这个查询开始。
注意:recordID 实际上是通过单击一个项目从上一页进入的。 此外,name、img、item_code 和 type_id 是我的表中的字段,而不是外部来源。
$recordID = $_GET['recordID'];
$query_master_details = "SELECT * FROM master_list WHERE master_list.master_id = $recordID";
$master_details = mysqli_query($conn, $query_master_details) or die(mysqli_error());
$row_master_details = mysqli_fetch_assoc($master_details);
$totalrows_master_details = mysqli_num_rows($master_details);
现在,我创建了这个来确定如何显示有关该项目的详细信息:
<div class="container2">
<div class="category"><h2><?php echo $row_master_details['name']; ?></h2></div>
<?php
$crafted = "SELECT * FROM `master_list` WHERE `type_id` <= 3 AND `length` = $row_master_details.length ORDER BY RAND() LIMIT 1";
$result = mysqli_query($conn, $crafted);
$crafted = array();
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$crafted[] = $row;
}
}
if ($row_master_details['type_id'] > 3) {?>
<p><strong>Code 1</strong></p>
<p><?php echo $crafted['name']; ?></p>
<p><img src="img/<?php echo $crafted['img']; ?>" /></p>
<p><?php echo $crafted['item_code']; ?></p>
<br><br>
<p><strong>Code 2</strong></p>
<p><?php echo $row_master_details['name']; ?></p>
<p><img src="img/<?php echo $row_master_details['img']; ?>" /></p>
<p><?php echo $row_master_details['item_code']; ?></p>
<p><?php echo $row_master_details['length']; ?> Characters</p>
<?php }else { ?>
<p><?php echo $row_master_details['name']; ?></p>
<p><img src="img/<?php echo $row_master_details['img']; ?>" /></p>
<p><?php echo $row_master_details['item_code']; ?></p>
<p><?php echo $row_master_details['length']; ?> Characters</p>
<?php
mysqli_free_result($master_details);
?>
<?php } ?>
<!-- end .container2 --></div>
解释这里发生了什么:
这会查看在上一页上单击的项目并找到有关它的信息。 如果它的 type_id 为 4 或更高,我需要它执行以下操作:
- 查看当前项目的“长度”。
- 从 master_list 中选择 type_id 为 1、2 或 3 且长度与第一个匹配的所有项目。
- 随机选择 1 个匹配项。
- 以与第一个相同的方式输出“名称、img 和 item_code。
如果最初选择的项目的type_id小于4,它只是发布原始信息。这部分有效。第二个查询的部分没有。
我感觉我需要另一个 $_GET[],但不确定如何去做。获取的记录 ID 已附加到用作链接的图像上。
谁能帮我查询这个以便我得到我想要的?
这是我正在尝试做的事情的图片,以帮助更有意义:
这是通过手动选择要匹配的项目并将它们放在一起来完成的。我想要显示一个随机项目。
这是当前代码的样子。这与 MiK 的回答是一样的:
【问题讨论】:
-
你能不能在这里给出两个表的架构都无法得到它的确切问题。内部查询可以解决问题。你最好解释一下表的架构
-
@aviboy2006 有两个表,但我只将其中一个用于这些查询。第二个更适合我的信息。主表是master_list。它包含以下字段:master_id、name、img、item_code、length 和 type_id。第二个只有破译 type_ids 的信息。
-
第一次编辑你可以在 if 块 if 中添加你的第二个查询。根据理解,您希望在 type_id > 3 时运行代码 1 和代码 2。我得到了您的长度检查点,但在第二个查询中没有理解点再次检查类型 id。
-
了解 JOIN
-
@aviboy2006,第一个查询是查明该物品是否为手工制作的物品。 type_id 确定该信息。任何不是手工制品的东西都需要在详细信息页面上放置手工制品。我需要两个项目的长度相同。字段“长度”告诉我字符在“item_code”中的字符串中的情况。两个“item_code”的字符数必须相同。