Проблем с foreach

agent_bg

Registered
Здравейте работя върху един проект но възникна проблем при изработката на форума

не знайно защо foreach връща следната грешка

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\uroci\forum.php on line 19

ето и кода

Код:
<?php
                           $cat_sql =  mysql_query('SELECT * FROM `radobb_forum_cats`');
                           while($row = mysql_fetch_assoc($cat_sql))
                           {
                              $cats[]=$row;
                           }
                           foreach($cats as $radobb)
                           {
                             $cat_sql = mysql_query('SELECT * FROM `radobb_forum_subcats` WHERE locked=0 AND cat_id='.$radobb['cat_id'].'');
                             echo '<div id="forum_cats">'.$radobb['cat_title'].'';
                             while($row = mysql_fetch_assoc($cat_sql))
                             {
                               echo '<div id="forum_subcat">'.$row['subcat_title'].'<p>'.$row['subcat_desc'].'</p></div>';
                             }
                             echo '</div>';
                           }
                           ?>
 
<?php
$cat_sql = mysql_query('SELECT * FROM `radobb_forum_cats`');
while($row = mysql_fetch_assoc($cat_sql))
{
$cats[]=$row;
foreach($cats as $radobb)
{
$cat_sql = mysql_query('SELECT * FROM `radobb_forum_subcats` WHERE locked=0 AND cat_id='.$radobb['cat_id'].'');
echo '<div id="forum_cats">'.$radobb['cat_title'].'';
while($row = mysql_fetch_assoc($cat_sql))
{
echo '<div id="forum_subcat">'.$row['subcat_title'].'<p>'.$row['subcat_desc'].'</p></div>';
}
echo '</div>';
}
}
?>
 
proba каза:
<?php
$cat_sql = mysql_query('SELECT * FROM `radobb_forum_cats`');
while($row = mysql_fetch_assoc($cat_sql))
{
$cats[]=$row;
foreach($cats as $radobb)
{
$cat_sql = mysql_query('SELECT * FROM `radobb_forum_subcats` WHERE locked=0 AND cat_id='.$radobb['cat_id'].'');
echo '<div id="forum_cats">'.$radobb['cat_title'].'';
while($row = mysql_fetch_assoc($cat_sql))
{
echo '<div id="forum_subcat">'.$row['subcat_title'].'<p>'.$row['subcat_desc'].'</p></div>';
}
echo '</div>';
}
}
?>

Проба така само спестяваш грешката но не оправяш нищо! Пич този проблем се случва когато няма записи в базата от данни. Пробвай да добавиш някакъв запис и кажи какъв е резултата.
 
Да @learned наистина кода проработи но и на @proba бачка за това няма да дам и на двамата съпорт за да няма недоволни :)
 
Като се получава като няма записи не виждам какъв е проблема да се сложи една проверка ?

<?php
$cat_sql = mysql_query('SELECT * FROM `radobb_forum_cats`');
$broi = mysql_num_rows($cat_sql);
if ($broi > 0)
{
while($row = mysql_fetch_assoc($cat_sql))
{
$cats[]=$row;
foreach($cats as $radobb)
{
$cat_sql = mysql_query('SELECT * FROM `radobb_forum_subcats` WHERE locked=0 AND cat_id='.$radobb['cat_id'].'');
echo '<div id="forum_cats">'.$radobb['cat_title'].'';
while($row = mysql_fetch_assoc($cat_sql))
{
echo '<div id="forum_subcat">'.$row['subcat_title'].'<p>'.$row['subcat_desc'].'</p></div>';
}
echo '</div>';
}
}
}
else
{
echo "Няма категорий.";
}
?>
 
Само не разбрах защо правиш цикъл в цикъла. Ако ще го правиш така, то подавай на foreach директно $row, иначе...

Код:
<?php 
$cat_sql =  mysql_query('SELECT * FROM `radobb_forum_cats`'); 
while($row = mysql_fetch_assoc($cat_sql)) { 
        $cats[]=$row; 
}

if(mysql_num_rows($cat_sql) > 0){
         foreach($cats as $radobb)
         { 
                  $cat_sql = mysql_query('SELECT * FROM `radobb_forum_subcats` WHERE locked=0 AND cat_id='.$radobb['cat_id'].''); 
                   echo '<div id="forum_cats">'.$radobb['cat_title'].''; 
                   while($row = mysql_fetch_assoc($cat_sql)) 
                   { 
                            echo '<div id="forum_subcat">'.$row['subcat_title'].'<p>'.$row['subcat_desc'].'</p></div>';
                    } 
                    echo '</div>'; 
            }
}
else{
            echo "There's no entries!";
} 
?>
 

Back
Горе