Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 - Fatal编程技术网

php递归函数的反向结果

php递归函数的反向结果,php,Php,我已经编写了一个php函数来显示类别,所有的作品都可以找到,但echo显示的结果是颠倒过来的(椅子/家具/产品),但我需要将其颠倒过来,使其看起来像这样(产品/家具/椅子) 功能站点地图($id){ $query\u rsCategoryId=“从类别中选择* 其中category_id=“$id.”; $rsCategoryId=mysql\u query($query\u rsCategoryId,$connection); $row\u rsCategoryId=mysql\u fetch

我已经编写了一个php函数来显示类别,所有的作品都可以找到,但echo显示的结果是颠倒过来的(椅子/家具/产品),但我需要将其颠倒过来,使其看起来像这样(产品/家具/椅子)

功能站点地图($id){
$query\u rsCategoryId=“从类别中选择*
其中category_id=“$id.”;
$rsCategoryId=mysql\u query($query\u rsCategoryId,$connection);
$row\u rsCategoryId=mysql\u fetch\u assoc($rsCategoryId);
$parent=$row\rsCategoryId['category\u parent'];
回声'
  • /
  • '; 如果($parent==0){ 出口 }否则{ 返回站点地图($parent); } }
    尝试在查询中使用order by desc

    SELECT * FROM categories 
    WHERE category_id = '".$id."' ORDER BY category_name_en DESC 
    

    只要修改一下你的代码

    function sitemap($id) { 
       $query_rsCategoryId = "SELECT * FROM categories 
       WHERE category_id = '".$id."'";
       $rsCategoryId = mysql_query($query_rsCategoryId, $connection);
       $row_rsCategoryId = mysql_fetch_assoc($rsCategoryId);
       $parent = $row_rsCategoryId['category_parent'];
    
    
       if ($parent != 0) {
          sitemap($parent);
          echo '<li><span class="divider">/</span>';
       } else {
          echo '<li>';
       }
    
        echo '<a href="products.php?category_id='.$row_rsCategoryId['category_id'].'">
       '.$row_rsCategoryId['category_name_en'].' </a>
       </li>';
    }
    
    功能站点地图($id){
    $query\u rsCategoryId=“从类别中选择*
    其中category_id=“$id.”;
    $rsCategoryId=mysql\u query($query\u rsCategoryId,$connection);
    $row\u rsCategoryId=mysql\u fetch\u assoc($rsCategoryId);
    $parent=$row\rsCategoryId['category\u parent'];
    如果($parent!=0){
    网站地图(母版);
    回音“
  • /”; }否则{ 回音“
  • ”; } 回声'
  • '; }
    不要回显结果,而是构建一个递归结果数组,然后可以颠倒该数组的顺序,然后在显示结果的数组中循环。在递归函数调用后放置回显。(还要将返回值保存到一个变量中,并在最后返回它。但您似乎没有对其执行任何操作。还要反转条件:如果$parent!=0,那么sitemap($parent))不起作用,他将在单独的查询中获取每个类别。
    function sitemap($id) { 
       $query_rsCategoryId = "SELECT * FROM categories 
       WHERE category_id = '".$id."'";
       $rsCategoryId = mysql_query($query_rsCategoryId, $connection);
       $row_rsCategoryId = mysql_fetch_assoc($rsCategoryId);
       $parent = $row_rsCategoryId['category_parent'];
    
    
       if ($parent != 0) {
          sitemap($parent);
          echo '<li><span class="divider">/</span>';
       } else {
          echo '<li>';
       }
    
        echo '<a href="products.php?category_id='.$row_rsCategoryId['category_id'].'">
       '.$row_rsCategoryId['category_name_en'].' </a>
       </li>';
    }