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 в 2х экз.

 PHP.SU

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


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

> Без описания
Kosmo
Отправлено: 08 Февраля, 2010 - 19:14:21
Post Id



Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Окт. 2009  
Откуда: Екатеринбург, Россия


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




Здравствуйте. Допустим, имеется такой php код:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  $num=ceil($num_rows/15);
  2.  $i=1;
  3.  while ($i<=$num)
  4. {
  5. if ($page<>$i)
  6.         echo '<td><a href="test.php?page=',$i,'&current=true">',$i,'</a></td>';
  7.         if (($current=='true')AND($page==$i))
  8.                 echo '<td>',$i,'</td>';
  9.         $i++;
  10.  }
  11.  echo '</tr></table>';

(результаты работы данного скрипта можете увидеть по этому адресу: http://www[dot]bambuku[dot]ru/test.php?p[dot][dot][dot]amp;current=true )
его необходимо подгрузить через include 2 раза на страничку(например, cata.php), сверху и снизу. Между ними будет контент.
Каким образом это можно сделать без неэффективной перегрузки сервера и без повторного выполнения вычислений? в программировании не силен, на php тем более. Подозреваю, что функцией можно как-то оформить. Но как?

(Отредактировано автором: 08 Февраля, 2010 - 19:16:53)



-----
начинающий web-мастер
http://www[dot]re-forma[dot]biz
 
 Top
E-Pro
Отправлено: 08 Февраля, 2010 - 19:32:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2008  
Откуда: Санкт-Петербург


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




К примеру запихиваешь свой код a функцию
PHP:
скопировать код в буфер обмена
  1. function num_page(){
  2. // типа код тут
  3. $result = '...результат...';
  4. return $result;
  5. }
  6. # Вызываешь
  7. $list = num_page();
  8. echo $list;
  9.  
 
 Top
Kosmo
Отправлено: 08 Февраля, 2010 - 19:42:30
Post Id



Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Окт. 2009  
Откуда: Екатеринбург, Россия


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




E-Pro пишет:
К примеру запихиваешь свой код a функцию
PHP:
скопировать код в буфер обмена
  1. function num_page(){
  2. // типа код тут
  3. $result = '...результат...';
  4. return $result;
  5. }
  6. # Вызываешь
  7. $list = num_page();
  8. echo $list;
  9.  

мне немного непонятно... переменной $result присваивается значение, которое должно быть выведено на странице? А как реализовать запись в эту переменную именно того содержимого, которое у меня получается? (мало того, что оно разделено на несколько "echo", оно еще выводится не в массив, а просто "по ходу выполнения"). Или для такой реализации придется переписывать мой код?


-----
начинающий web-мастер
http://www[dot]re-forma[dot]biz
 
 Top
E-Pro
Отправлено: 08 Февраля, 2010 - 21:04:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2008  
Откуда: Санкт-Петербург


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




Зачем переписывать код? Слегка подкорректировать:
По вышеуказанному коду, приведу пример:

PHP:
скопировать код в буфер обмена
  1. function num_page(){
  2. $num=ceil($num_rows/15);
  3.  $i=1; $result = '';
  4.  while ($i<=$num)
  5. {
  6. if ($page<>$i)
  7.         $result .= '<td><a href="test.php?page=',$i,'&current=true">',$i,'</a></td>';
  8.         if (($current=='true')AND($page==$i))
  9.                 $result .= '<td>',$i,'</td>';
  10.         $i++;
  11.  }
  12.  $result .= '</tr></table>';
  13. return $result;
  14. }
  15.  
 
 Top
Kosmo
Отправлено: 08 Февраля, 2010 - 21:19:07
Post Id



Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Окт. 2009  
Откуда: Екатеринбург, Россия


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




E-Pro пишет:
Зачем переписывать код? Слегка подкорректировать:
По вышеуказанному коду, приведу пример:

PHP:
скопировать код в буфер обмена
  1. function num_page(){
  2. $num=ceil($num_rows/15);
  3.  $i=1; $result = '';
  4.  while ($i<=$num)
  5. {
  6. if ($page<>$i)
  7.         $result .= '<td><a href="test.php?page=',$i,'&current=true">',$i,'</a></td>';
  8.         if (($current=='true')AND($page==$i))
  9.                 $result .= '<td>',$i,'</td>';
  10.         $i++;
  11.  }
  12.  $result .= '</tr></table>';
  13. return $result;
  14. }
  15.  

а комбинация символов ".=" позволяет добавлять к текущему значению переменной новое содержимое? Спасибо большое, сам бы не дошел до этого Улыбка


-----
начинающий web-мастер
http://www[dot]re-forma[dot]biz
 
 Top
voltag
Отправлено: 08 Февраля, 2010 - 22:03:50
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Янв. 2010  


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




Ещё один вариант: Кеширование вывода.
пример:
PHP:
скопировать код в буфер обмена
  1.  
  2. $Content='';
  3. function save_echo()
  4. {
  5.   global $Content;
  6.   $Content=$buffer; return "";
  7. }
  8.  
  9. ob_start('save_echo');
  10.  
  11. $num=ceil($num_rows/15);
  12.  $i=1;
  13.  while ($i<=$num)
  14. {
  15. if ($page<>$i)
  16.         echo '<td><a href="test.php?page=',$i,'&current=true">',$i,'</a></td>';
  17.         if (($current=='true')AND($page==$i))
  18.                 echo '<td>',$i,'</td>';
  19.         $i++;
  20.  }
  21.  echo '</tr></table>';
  22.  
  23.  


потом вставляете куда надо echo $Content;
 
 Top
Kosmo
Отправлено: 08 Февраля, 2010 - 22:09:48
Post Id



Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Окт. 2009  
Откуда: Екатеринбург, Россия


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




увы, у меня не работают оба варианта. Почему не работает 2й вариант с кешированием - не знаю, и диагностировать причину ошибки мне не удалось.
Почему не работает первый вариант подозреваю. У меня этот скрипт завязан с запросом в БД MySQL и необходимо передать значение переменной в функцию. Как это сделать, подскажите, пожалуйста.

P.S. используя 1 вариант, вручную ввел (для дебага) необходимую переменную в функцию, теперь скрипт стал работать иначе, чем сначала. Сравнить результаты работы можно тут:
http://www[dot]bambuku[dot]ru/test.php?p[dot][dot][dot]amp;current=true
видимо, такой алгоритм работы не до конца удовлетворяет моим требованиям. Огорчение
Можно его "подкрутить" еще?

(Отредактировано автором: 08 Февраля, 2010 - 22:24:09)



-----
начинающий web-мастер
http://www[dot]re-forma[dot]biz
 
 Top
E-Pro
Отправлено: 08 Февраля, 2010 - 22:25:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2008  
Откуда: Санкт-Петербург


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




Возможно у Вас не существуют переменные которые указаны в функции.
Используйте global для передачи информации во внутрь функции, либо передачу в самой функции.
PHP:
скопировать код в буфер обмена
  1. # Пример
  2. $num = 5;
  3. function test(){
  4. global $num;
  5. echo $num;
  6. }
  7. # Либо
  8. function page($num=''){
  9. return $num;
  10. }
  11. $x = page('5');
  12. echo $x;
  13.  

(Отредактировано автором: 08 Февраля, 2010 - 22:27:08)

 
 Top
Kosmo
Отправлено: 08 Февраля, 2010 - 23:14:58
Post Id



Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Окт. 2009  
Откуда: Екатеринбург, Россия


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




E-Pro пишет:
Возможно у Вас не существуют переменные которые указаны в функции.
Используйте global для передачи информации во внутрь функции, либо передачу в самой функции.
PHP:
скопировать код в буфер обмена
  1. # Пример
  2. $num = 5;
  3. function test(){
  4. global $num;
  5. echo $num;
  6. }
  7. # Либо
  8. function page($num=''){
  9. return $num;
  10. }
  11. $x = page('5');
  12. echo $x;
  13.  

с глобальными переменными разобрался.
Все вопросы по работе сняты. Огромное спасибо, премного благодарен.


-----
начинающий web-мастер
http://www[dot]re-forma[dot]biz
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB