[help] цикл уходит в бесконечность...

Статус
В этой теме нельзя размещать новые ответы.

MumiSan

Постоялец
Регистрация
14 Фев 2008
Сообщения
100
Реакции
86
Суть проблемы такова.
Имеется цикл в цикле
PHP:
for(...){  for(...) { } }
который берет с базы данные и выводит как категории с под категориями.
Но при выводе, цикл уходит в бесконечность. При попытке вывести $i - оказалось что значение $i почемуто не увеличивается.

Для просмотра ссылки Войди или Зарегистрируйся

База:
PHP:
DROP TABLE IF EXISTS `categories`;
CREATE TABLE `categories` (
  `ID` int(10) NOT NULL auto_increment,
  `cat` text NOT NULL,
  `num` int(10) NOT NULL,
  `main_cat` enum('yes','no') NOT NULL default 'yes',
  `id_main_cat` int(10) NOT NULL default '0',
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=15 /*!40101 DEFAULT CHARSET=utf8 */;

INSERT INTO `categories` VALUES
(1, 'Новости', 0, 'yes', 0),
(2, 'Видео', 0, 'yes', 0),
(3, 'Картинки', 0, 'yes', 0),
(4, 'Чтиво', 0, 'yes', 0),
(5, 'Flash', 0, 'yes', 0),
(14, '1234', 0, 'no', 3);

Сам скрипт:
PHP:
$result = mysql_query('SELECT * FROM `categories` WHERE `main_cat`=\'yes\' ORDER by `id`') or die( mysql_error());
$result_numb = mysql_num_rows($result);
   echo "<br>$result_numb - Всего родительских категорий<br>";

for($i=0;$i<$result_numb;$i++)
   {
     echo'&nbsp;'.@mysql_result($result,$i,1).'<br>';

      $id_main_cat = mysql_result($result,$i,0);  
      
      $select_subcat = mysql_query("SELECT * FROM `categories` WHERE `id_main_cat`='$id_main_cat' AND `main_cat`='no' ORDER by `id`") or die(mysql_error());
      $select_ns = mysql_num_rows($select_subcat);
      
      if($select_ns > 0)
        {
         for($i=0;$i<$select_ns;$i++)
            {
              echo'&nbsp; -- '.@mysql_result($select_subcat,$i,1).' ( '.$i.'  - i) <br>';
            }
        }     
        
      echo "$select_ns - подкатегорий в етой категории - ( $i - i) <br><br>";
     }

Где я протупил?
 
if($select_ns > 0)
{
for($i=0;$i<$select_ns;$i++)
{
echo'&nbsp; -- '.@mysql_result($select_subcat,$i,1).' ( '.$i.' - i) <br>';
}
}

в строке for($i=0;$i<$select_ns;$i++)
$i заменить на что-то другое ..... например $ii
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху