我如何从查询的一个字段中获取信息以用于另一查询?

问题描述 投票:0回答:1

我仍在尝试完成我的详细信息页面的修复,我还需要一件修复它。

我从这个查询开始。

NOTE:recordID实际上是通过单击项目从上一页进入的。另外,名称,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或更高,则需要执行以下操作:

  1. 查看当前项目的“长度”。
  2. 从master_list中选择所有type_id为1、2或3且长度与第一个匹配的项。
  3. 选择1个随机匹配。
  4. 以与第一个相同的方式输出“名称,img和item_code。

如果最初选择的项目的type_id小于4,则仅发布原始信息。这部分有效。来自第二个查询的部分没有。

我有一种感觉,我需要另一个$ _GET [],但不确定如何操作。 recordID get附加到用作链接的图像上。

有人可以帮我查询这个问题,以便得到我想要的吗?

这里是我正在尝试做的事情以帮助理解的图片:

enter image description here

这是通过手动选择要匹配的项目并将它们放在一起来完成的。我想要显示一个随机项目。

这里是当前代码的样子。这与MiK的答案是一样的:

enter image description here

php mysql sql random
1个回答
0
投票

代替

$crafted = "SELECT * FROM `master_list` WHERE `type_id` <= 3 AND `length` = $row_master_details.length ORDER BY RAND() LIMIT 1";

尝试

$crafted = "SELECT * FROM `master_list` WHERE `type_id` <= 3 AND `length` = ".$row_master_details['length']." ORDER BY RAND() LIMIT 1";

您的查询未能找到匹配的项目,因为它将与字符串“ Arraylength”而不是实际值匹配。

© www.soinside.com 2019 - 2024. All rights reserved.