Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не верное значение счетчика в скрипте.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Zuldek
Отправлено: 09 Ноября, 2011 - 13:49:47
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2.      //получаем массив-дерево тегов
  3. $num=0;
  4.      $res = mysql_query("select comments_id,comments_parent,comments_text from comments order by comments_id, comments_parent ASC") or die ("ошибка ".mysql_error());
  5.  
  6.              while ($line = mysql_fetch_assoc($res)) {
  7.  
  8.                      $tags[ (int) $line['comments_parent'] ][] = array( (int) $line['comments_id'], $line['comments_text']);
  9.  
  10.              }
  11.  
  12.                   //пишем список-теги со ссылками на просмотр
  13. echo "<br/>";
  14.      function derevolia($parent=0) {
  15.              global $tags;
  16.  
  17.                          for ($i=0;$i<=count($tags[$parent])-1;$i++) {
  18.  
  19.                         $num++;
  20.              echo '<div style="margin-top:0px; margin-bottom:0px; position:relative; float: left; margin-left:10px; margin-bottom:0px; border:0px solid black;">';
  21.                      echo '
  22. <div class="com_container" style="border:0px solid black;">
  23. <div class="com_left_top"></div>       
  24. <div class="com_left_bottom"></div>
  25.         <div class="com_right_top"></div>
  26.         <div class="com_right_bottom">  </div>
  27. <div class="com_avatar_border"></div>
  28. <div class="com_avatar"></div>
  29. <table border="0">
  30.         <tr>
  31.                 <td width="93">
  32. <div class="com_spacer"></div>
  33.                 </td>
  34.                 <td>
  35. <div class="com_text_cont">
  36. <div class="com_time_cont">
  37. <span class="com_time">5 октября в 13 ч. 50 мин.</span>';
  38. $num=$num+1;
  39. echo '<b>'.$num.'</b><br/>';   
  40. echo '<b>'.$i.'</b>';  
  41. echo '<a href="#" onclick="anichange(';
  42. echo "'#divId$num'"; ?><? echo '); return false">Ответить</a>
  43. <div id=';
  44. echo "'divId$num'"; ?><? echo ' style="display: none">
  45. Тут форма отфета на ткущий комментарий
  46. <br>
  47. </div>';
  48. echo '</div>
  49. <div class="com_text">
  50.                                           '.$tags[$parent][$i][1].'
  51. </div>';
  52.  
  53. echo '<div class="com_name_cont">
  54. <span class="com_name">Vika</span>
  55. </div>
  56. </div>
  57.                 </td>
  58. </tr>
  59. </table>
  60. </div>
  61.                                           ';
  62.  
  63.                      if (isset($tags[ $tags[$parent][$i][0] ])) derevolia($tags[$parent][$i][0]);
  64.  
  65.              echo '</div>';
  66.  
  67.              }
  68.  
  69.              }
  70. derevolia();


$num — счетчик к которому пытаюсь прицепиться дабы показывать скрытый блок с формой ответа на текущий комментарий. Однако при выводе дерева $num принимает такие значения - 2 2 2 2 4 2 4.
Наверно это связано с тем что функция сама себя вызывает в цикле и счетчик как-то сбивается.
Нужно просто выводить порядковый номер комментария независимо от вложенности, чтобы привезать к нему id блока с формой, которую показывает при клике на "Ответить" js.
прошу помочь, заранее благодарен за любые ответы и комментарии.
 
 Top
EuGen Администратор
Отправлено: 09 Ноября, 2011 - 13:54:55
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Zuldek пишет:
function derevolia($parent=0) {
global $tags;

Возможно,
PHP:
скопировать код в буфер обмена
  1. function derevolia($parent=0) {
  2.              global $tags, $num;


?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Zuldek
Отправлено: 09 Ноября, 2011 - 14:01:15
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




EuGen пишет:
Zuldek пишет:
function derevolia($parent=0) {
global $tags;

Возможно,
PHP:
скопировать код в буфер обмена
  1. function derevolia($parent=0) {
  2.              global $tags, $num;


?

Именно.
Спасибо большое. Как говорится, берешь чужой код, — читай внимательно Огорчение
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB