【问题标题】:merge 2 condition array from 2 query in 1将 2 个查询中的 2 个条件数组合并到 1
【发布时间】:2016-02-04 04:36:44
【问题描述】:

我只是脚本编码的业余爱好者。我需要这里有人的帮助.. 我在这里遇到问题我试图从我的代码中显示 2 个条件合并,请看这里...

<ul class="nav navbar-nav">
   <?php               
   $main=mysql_query("SELECT * FROM mainmenu WHERE aktif='Y'");
   while($r=mysql_fetch_array($main)){
   $t=$r[''];
   $tm="<a href='$r[link]' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-expanded='false'>$r[nama_menu]<span class='caret'></span></a>";
   $th="<a href='$r[link]'>$r[nama_menu]</a>";
   if ($t!= ""){
   $tombol=$th;
   }else{
   $tombol=$tm;
   } 
   echo "<li class='dropdown'>$tombol
         <ul class='dropdown-menu' role='menu'>";
    	 $sub=mysql_query("SELECT * FROM submenu, mainmenu  
         WHERE submenu.id_main=mainmenu.id_main
         AND submenu.id_main=$r[id_main]");
    	 while($w=mysql_fetch_array($sub)){
   echo " <li><a href='$w[link_sub]'>$w[nama_sub]</a></li>";
    	 }
   echo "</ul></li>";}
   ?>
</ul>

我已将其拆分为,尝试在任何情况下显示它们,这更相关,但我无法合并它,我不知道我要做什么,请看这个

这是第一个条件 -->

<ul class="nav navbar-nav">
<?php               
    $main=mysql_query("SELECT  DISTINCT    a.* FROM mainmenu a
    INNER JOIN submenu b ON a.id_main = b.id_main AND a.aktif = 'Y'");
    while($r=mysql_fetch_array($main)){
    echo "<li class='dropdown'><a href='$r[link]' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-expanded='false'>$r[nama_menu]<span class='caret'></span></a><ul class='dropdown-menu' role='menu'>";
    $sub=mysql_query("SELECT * FROM submenu, mainmenu  
    WHERE submenu.id_main=mainmenu.id_main 
    AND submenu.id_main=$r[id_main]");
    while($w=mysql_fetch_array($sub)){
    echo " <li><a href='$w[link_sub]'>$w[nama_sub]</a></li>";
    }
   echo "</ul></li>";} 
?>
</ul>

这是第二个条件 -->

<ul class="nav navbar-nav">
<?php      
  $menu=mysql_query("SELECT  DISTINCT    a.* FROM mainmenu a
  LEFT OUTER JOIN submenu b ON a.id_main = b.id_main WHERE b.id_main is null AND a.aktif = 'Y'");
  while($s=mysql_fetch_array($menu)){
  echo "<li class='dropdown'><a href='$s[link]'>$s[nama_menu]</a></li>";} ?>
</ul>

将 INNER JOIN 与 LEFT OUTER JOIN 合并时我想要的是:

if (bla, bla, bla){
echo "Show INNER JOIN";
}else{
echo "Show LEFT OUTER JOIN";
} 

【问题讨论】:

    标签: php mysql sql arrays merge


    【解决方案1】:

    通常当两个查询使用同一张表时,使用OR连接两组条件就很简单了。但是在这种情况下,一个查询有JOIN,另一个有LEFT OUTER JOIN

    我认为你可以像这样使用UNION

    SELECT  DISTINCT    a.* 
    FROM mainmenu a
    INNER JOIN submenu b ON a.id_main = b.id_main AND a.aktif = 'Y'
    UNION 
    SELECT  DISTINCT    a.* 
    FROM mainmenu a
    LEFT OUTER JOIN submenu b ON a.id_main = b.id_main 
    WHERE b.id_main is null AND a.aktif = 'Y'
    

    你可以改写为:

    SELECT  DISTINCT    a.* 
    FROM mainmenu a
    LEFT OUTER JOIN submenu b ON a.id_main = b.id_main OR b.id_main is null
    WHERE a.aktif = 'Y'
    

    没有样本数据和结果,我无法为您测试和确认。

    【讨论】:

    • 我想我需要 2 个数组的结果来打印不同的 INNER JOIN 和 LEFT OUTER JOIN
    • INNER 还有另一个
      ,而 OUTER 没有.. 但是,谢谢你的回答.. 我会在我的本地主机上试试..
    【解决方案2】:

    当一些菜单有子菜单时,当他想要从他们的菜单中做出不同的外观时,也许有人需要这样的东西...... 终于我找到了类似这样的解决方案。

    这是脚本:

    <ul class="nav navbar-nav">
                <?php               
            $main=mysql_query("SELECT * FROM mainmenu WHERE aktif='Y'");
    		while($r=mysql_fetch_array($main)){
    		$main2=mysql_query("SELECT  id_main FROM submenu WHERE submenu.id_main=$r[id_main] ");
    		($s=mysql_fetch_array($main2));
    		if ($r['id_main'] == $s['id_main'] ){
          $tombol="<a href='$r[link]' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-expanded='false'>$r[nama_menu]<span class='caret'></span></a>";
          }else{
          $tombol="<a href='$r[link]'>$r[nama_menu]</a>";
          } 
    	         echo "<li class='dropdown'>$tombol
                        <ul class='dropdown-menu' role='menu'>";
    	         $sub=mysql_query("SELECT * FROM submenu, mainmenu  
                                WHERE submenu.id_main=mainmenu.id_main 
                                AND submenu.id_main=$r[id_main]");
    	         while($w=mysql_fetch_array($sub)){
                  echo " <li><a href='$w[link_sub]'>$w[nama_sub]</a></li>";
    	         }
    	       echo "</ul>
                </li>";} ?>
    </ul>

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签