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