10/10/2018, 10:27

Giúp mình đoạn code đệ quy này với.

PHP Code:
function get_sub_categories($parentid) {
    static 
$myarray = array();
      
$sql "select * from categories where parentid='".$parentid."'";
    
$query $this->db->query($sql);
    if(
$query->num_rows()>0) {
        
$categories $query->result();
        
array_push($myarray,$parentid,$categories);
        foreach(
$categories as $category) {
            
$myarray=get_sub_categories($category->id);
        }
        
    return 
$myarray;
        
    }
    else {
        return 
false;
    }
  } 
không hiểu sao toàn lỗi:
Fatal error: Call to undefined function get_sub_categories() in C:xampphtdocsknpsystemapplicationmodelslog _model.php on line 117
ngoc_viet08 viết 12:42 ngày 10/10/2018
line 117 là dòng gì ?
cayriver viết 12:30 ngày 10/10/2018
Được gửi bởi ngoc_viet08
line 117 là dòng gì ?
là đoạn code gọi lại chính hàm ấy(đệ quy). Mình có đọc một vài đoạn code đệ quy và viết theo cấu trúc như thế nhưng nó lại báo lỗi. Nếu để return ở trên thì code chạy kô có lỗi, nhưng như thế thì không đúng với mong muốn
1024KB viết 12:36 ngày 10/10/2018
Đối với trường hợp của cayriver bạn có thể làm như sau:
file blog_view.php:
PHP Code:
// chỗ cần show categories
<?php $this->blog_model->get_categories(); ?>
file blog.php:
PHP Code:
// ...
// nhớ load blog_model nhé
function index()
{
   
$this->load->view('blog_view');

file blog_model.php:
PHP Code:
// ...
function get_cateogries($parent_id=0)
{
  
$sql "SELECT * FROM categories WHERE cat_parent = ".$parent_id;
  
$qr $this->db->query($sql);
  echo 
'<ul>';
  foreach(
$qr->result() as $item)
  {
     echo 
'<li>'.$item->cat_name.'</li>';
     
$this->get_categories($item->cat_id);
  }
  echo 
'</ul>';

Đấy là demo tạm thời. Bạn có thể theo cách trên làm.
cayriver viết 12:31 ngày 10/10/2018
thanks bạn, vậy là đã giải quyết được vấn đề khi tránh return trong function đệ quy rồi.Hix, giờ mới phát hiện ra lỗi.
$myarray=get_sub_categories($category->id);
$myarray=$this->get_sub_categories($category->id); OK ngay.
BnoL viết 12:39 ngày 10/10/2018
cái này là lỗi PHP OOP nè, chứ liên wan gì đến đệ quy đâu
ngoc_viet08 viết 12:34 ngày 10/10/2018
lỗi cái gì . function get_sub_categories($parentid) là function nằm trong 1 class nên phải call nó bằng $this->get_sub_categories($parentid) .
call get_sub_categories($parentid) là 1 function ko thuộc class nào cả .
bnol phải nguyên ko ta , lỡ to mồm quá :">
Bài liên quan
0