Recusive fonksiyon geliştirme bitiminde 500 hatası veriyor

0 Cevap php

Ben oldukça zor bir hata var. Aşağıdaki fonksiyon navigasyon katmanları almak için tasarlanmış bir recusive betik.

//recusive function to set higher level navigation tree
function subLevels ($part_tree) {
// print_r($part_tree);

//set new layer if initive
if (empty ($part_tree['tree_name'])) {
  $grandchild_array = explode ("|", $part_tree['children'][0]);

  //populate the main array with the correct children for the new layer
  foreach ($grandchild_array as $key => $array) {
  if (is_array($array)) {

    foreach ($array as $inner_key => $current_id) {
      $result = mysql_query("SELECT children FROM

".PRE."navigation WHERE id = '$current_id'");

      $row = mysql_fetch_array($result);

      $new_child[$current_id] = $row['children'];
    }

    foreach ($new_child as $new_id => $row) {

        $part_tree['children'][$new_id] = $row['children'];

      }

  } else {
  // echo $array;
   $result = mysql_query("SELECT children FROM ".PRE."navigation WHERE

id = '$ dizi' ");

   $row = mysql_fetch_array($result);

   $part_tree['children'][$array] = $row['children'];

  }
  }

}

/ / Geçerli katmanı oluşturun

foreach (=> $ child_string as $ anahtar $ part_tree ['çocuk']) {

if (!empty ($child_string)) {
$temp_array = explode ("|", $child_string);
$part_tree['children'][$key] = $temp_array;
}   }

//see if a new layer is required for each child foreach ($part_tree['children'] as $key => $array) {

if (!empty ($array)) {
  $temp_string = implode ("|", $array);
  $part_tree['children'][$key]['children'][]

= $temp_string; $part_tree = $this -> subLevels ($part_tree['children'][$key]);

}

}

$ part_tree dönmek;

 }//function

ve ben bu adamcağız bölümü oldukça eminim

//set new layer if initive if (empty ($part_tree['tree_name'])) { $grandchild_array = explode ("|", $part_tree['children'][0]);

  //populate the main array with the correct children for the new layer
  foreach ($grandchild_array as $key => $array) {
  if (is_array($array)) {

    foreach ($array as $inner_key => $current_id) {
      $result = mysql_query("SELECT children FROM

".PRE."navigation WHERE id = '$current_id'"); $row = mysql_fetch_array($result); $new_child[$current_id] = $row['children']; }

    foreach ($new_child as $new_id => $row) {
        $part_tree['children'][$new_id] =

$row['children']; }

  } else {
  // echo $array;
   $result = mysql_query("SELECT children FROM ".PRE."navigation WHERE

id = '$ dizi' "); $row = mysql_fetch_array($result);

   $part_tree['children'][$array] = $row['children'];

  }
  }

}

Sorunun niteliği şudur: en kısa sürede ben yukarıdaki bölümü bitmiş olarak, sunucu hatası 500 dönen başladı Özellikle, bir zamanlar ben hemen sorunu bulunanlar $ part_tree ['çocuk'] [$ deðiþken_adý] doldurur kodunu bitirdi..

Bu fonksiyonun geri kalanı çalışacaktır ayarlamanız dizi elemanıyla sadece. İlk interation üzerinde doğru biçimde sağlanır ve navigasyon her subsquent tabakası için burada yeniden doldurulur.

Bir çözüm için benim tek düşünce ben çok derin recusing ve sunucu gibi değildi oldu. Bu nedenle herhangi bir kök düzey 3 kez çalışan işlevini meanig, 3 diğer bir Maxium yol açar, ancak bu başarılı olmamıştır ben navigasyon tablosunu azalır. Bundan önce ben özgür recusion sorunun sınırsız seviyeleri ile test edilmiştir.

Herkes bu 500 hata için alternatif bir sebep sunabilir eğer ben bütün kulaklar değilim.

EDIT: So after activating the error flagging the site returned these messages:

Uyarı: Undefined index: 32 hattı tarihinde sona in / mnt/sw/2028751/web_applications/web/project_site/secure_includes/modules/users/index.php

Notice: Undefined özellik: Satır 153 / mnt/sw/2028751/web_applications/web/project_site/secure_includes/modules/users/class.php yapman kullanıcı :: $

Notice: Undefined özellik: Satır 153 / mnt/sw/2028751/web_applications/web/project_site/secure_includes/modules/users/class.php yapman kullanıcı :: $

Notice: Undefined index: hattında 29 / mnt/sw/2028751/web_applications/web/project_site/secure_includes/modules/preprocessor/index.php içinde expire_flag

Notice: Undefined variable: hattında 36 / mnt/sw/2028751/web_applications/web/project_site/secure_includes/modules/preprocessor/index.php içinde error404

ve tekrar bu

Uyarı: hat 91 üzerinde / mnt/sw/2028751/web_applications/web/project_site/secure_includes/modules/navigation/class.php dize dönüştürme Array

Ben üzerinde çalışıyor olması tek dosya olarak bu bizzar bulmak navigasyon / class.php olduğunu

0 Cevap