2015-01-22 2 views
0

Я пытаюсь извлечь данные из XML-файла с помощью simplexml. Я запускаю серию циклов while и foreach, чтобы копаться в том, что мне нужно.php echo не работает после elseif

Однако, я обнаружил, что после завершения elseif я не могу долго показывать дополнительные данные на экране (echo и print_r не работают). Я прикрепил фрагмент кода для цикла elseif в конце конца скрипта. Пожалуйста, извините паршивый код, я относительно новый программист.

elseif ($select_vars[1]==-1) { 
    $sub1=0; 
    $sub2=0; 
    $temp_count = 1; 
    $modnum=intval($select_vars[0]); 
    $sub1m = $xmls->module->{ 
     intval($select_vars[0])} 

    ->count(); 
    while ($sub1 < $sub1m) { 
     foreach($xmls->module->{ 
      $modnum} 

     ->sublist1->{ 
      $sub1} 

     as $hit2){ 
      $sub2m = $xmls->module->{ 
       $modnum} 

      ->sublist1->{ 
       $sub1} 

      ->count(); 
      while ($sub2 < $sub2m) { 
       foreach($xmls->module->{ 
        $modnum} 

       ->sublist1->{ 
        $sub1} 

       ->sublist2->{ 
        $sub2} 

       as $hit3){ 
        $template_string .= $temp_count . " - " . (string)$hit3 . "<br/>"; 
        $temp_count = $temp_count+1; 
        $template_list[] = (string)$hit3; 
       } 

       $sub2 = $sub2+1; 
      } 

      $sub1 = $sub1+1; 
      $sub2 = 0; 
     } 

    } 

    echo "sub1 = " . $sub1 . "<br/>"; 
} 

echo "here <br/><br/>".$template_string; 
print_r ($template_list); 
$template_list = array_unique($template_list); 
sort($template_list); 
print_r ($template_list); 

Я знаю, что петли извлечь нужную информацию, потому что я могу повторить где-нибудь в различных циклах, кроме как после закрытия esleif кронштейна.

Живая копия кода доступна по адресу: http://www.aquilasolutions.us/software/templates/pages/filter-list.php

EDIT:

выход должен быть 3 выбирает и когда верхний ящик заполнен, когда остальные пустые серии линии (до 400+) в формате ### - #### - #### - #### - ####.

EDIT 2: чтобы увидеть ошибку: 1. Выберите набор «Модуль», чтобы быть чем- 2. Установить выберите Подсписок 1 и 2 Подсписок быть пустым 3. Убедитесь, что массив в верхней имеет 3 клавиши (он представляет собой cookie сеанса, называемый списком фильтров и представляет выбранные элементы)

EDIT 3: Я отследил ошибку, но не смог ее решить.

Существует фатальная ошибка в моем журнале (Фатальная ошибка: Вызов функции подсчета член() на нуль) на линии:

$ sub2m = $ xmls-> модуль -> {$ modnum} - > sublist1 -> {$ sub1} -> счетчик();

Я попытался положить IsNull улов в России, но затем произошла роковая ошибка на ISNULL ....

+0

Хем ... Он работает на вашем демо? Ах, нет ... Это не эхо, которое не «работает». Речь идет о ваших переменных, которые вы пытаетесь сбросить ... – Brewal

+0

Вы видите почти 400 строк в формате # - #### - #### - #### - #### и дампа массива? –

+0

Код работает нормально. Переменные просто пусты. –

ответ

0

Я разыскал вопрос, как и ожидалось, это была моя собственная глупость!

Я набрал неверную переменную для цикла while ($ sub2 < $ sub2m).

Это должно было в то время как ($ sub2 < $ sub2num)