Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从不同的列中选择_Php_Mysql - Fatal编程技术网

Php 从不同的列中选择

Php 从不同的列中选择,php,mysql,Php,Mysql,我试图从表中的不同列中进行选择,然后让MYSQL搜索字段值。我搜索过谷歌,但我得到的最多的是使用IN和LIKE查询,这对我想要实现的目标没有多大帮助 <?php //get rows query $query = $db->query("SELECT * FROM categories WHERE cat_parent = 'Root'"); while($row = $query->fetch_assoc()){ $cat_name =

我试图从表中的不同列中进行选择,然后让MYSQL搜索字段值。我搜索过谷歌,但我得到的最多的是使用IN和LIKE查询,这对我想要实现的目标没有多大帮助

<?php
    //get rows query
    $query = $db->query("SELECT * FROM categories WHERE cat_parent = 'Root'");
    while($row = $query->fetch_assoc()){
        $cat_name = $row["cat_name"];
?>
                <li><a href="$id"><?php echo $cat_name; ?></a>
    </li>
<?php } ?>

<?php
    //get rows query
    $query = $db->query("SELECT * FROM categories WHERE cat_parent = cat_name");
    while($row = $query->fetch_assoc()){
         $cat_name = $row["cat_name"];
?>
   <li class="dropdown"><a href="$cat_id" class="dropdown-toggle" data-toggle="dropdown"><?php echo $cat_name; ?></a>
      <div class="dropdown-menu">
        <div class="dropdown-inner">
                        <ul class="list-unstyled">
                            <li><a href="$cat_id">$cat_name</a></li>
                        </ul>
              </li>
                      </div>
                     </div>
    </li>
<?php } ?>

根据您问题中的信息,这应该符合您的要求

<?php
$query = $db->query("SELECT * FROM categories WHERE cat_parent = 'Root'");
while($row = $query->fetch_assoc()){
    $parent_cat_name = $row["cat_name"];

    ?>
  <li>
    <a href="$id">
      <?php echo $parent_cat_name; ?>
    </a>
  </li>
  <?php
    $query = $db->query("SELECT * FROM categories WHERE cat_parent = '".$parent_cat_name."'");
    while($row = $query->fetch_assoc()){
        $cat_name = $row["cat_name"];
        ?>
    <li class="dropdown">
      <a href="$cat_id" class="dropdown-toggle" data-toggle="dropdown">
        <?php echo $cat_name; ?>
      </a>
      <div class="dropdown-menu">
        <div class="dropdown-inner">
          <ul class="list-unstyled">
            <li><a href="$cat_id">$cat_name</a></li>
          </ul>
        </div>
      </div>
    </li>
    <?php
    }
}
?>

找到了答案。不得不创建另一个名为category_sub的MYSQL表,并在我的查询中做一些变通。因此,最终结果应该是

<?php
$query = $db->query("SELECT * FROM categories WHERE cat_name NOT IN (SELECT sub_cat_parent FROM categories_sub) AND cat_parent = 'Root'");
while($row = $query->fetch_assoc()){
    $parent_cat_name = $row["cat_name"];

    ?>
  <li>
    <a href="$id">
      <?php echo $parent_cat_name; ?>
    </a>
  </li>
  <?php }

    $query1 = $db->query("SELECT * FROM categories_sub ");
    while($row = $query1->fetch_assoc()){
        $cat_name = $row["sub_cat_name"];
        $cat_parent = $row["sub_cat_parent"];
        ?>
    <li class="dropdown">
      <a href="$cat_id" class="dropdown-toggle" data-toggle="dropdown">
        <?php echo $cat_parent; ?>
      </a>
      <div class="dropdown-menu">
        <div class="dropdown-inner">
          <ul class="list-unstyled">
            <li><a href="$cat_id"><?php echo $cat_name?></a></li>
          </ul>
        </div>
      </div>
    </li>
    <?php

}
?>

谢谢你的回答,我不确定这是否解决了问题,因为现在只显示了一个类别,我认为while查询有问题。EDIT我刚才看到了你的回答,我不能对它发表评论,但请查看MySQL连接表。它基本上是一个导航栏,第一个循环包含类别,第二个循环包含循环的内容。目前,我找到了一个解决方案,我把它作为一个答案贴了出来,我认为这不是最好的方法。。但它确实起到了作用。我现在遇到的另一个问题是我不能正确地嵌套循环。每次循环运行时,它都会显示一个
  • ,而不是一个
      ,并将
    • 嵌套在其中。。
      <?php
      $query = $db->query("SELECT * FROM categories WHERE cat_name NOT IN (SELECT sub_cat_parent FROM categories_sub) AND cat_parent = 'Root'");
      while($row = $query->fetch_assoc()){
          $parent_cat_name = $row["cat_name"];
      
          ?>
        <li>
          <a href="$id">
            <?php echo $parent_cat_name; ?>
          </a>
        </li>
        <?php }
      
          $query1 = $db->query("SELECT * FROM categories_sub ");
          while($row = $query1->fetch_assoc()){
              $cat_name = $row["sub_cat_name"];
              $cat_parent = $row["sub_cat_parent"];
              ?>
          <li class="dropdown">
            <a href="$cat_id" class="dropdown-toggle" data-toggle="dropdown">
              <?php echo $cat_parent; ?>
            </a>
            <div class="dropdown-menu">
              <div class="dropdown-inner">
                <ul class="list-unstyled">
                  <li><a href="$cat_id"><?php echo $cat_name?></a></li>
                </ul>
              </div>
            </div>
          </li>
          <?php
      
      }
      ?>