Include в цикле

chmod755

Guest
Include в цикле

Почему include в цикле выполняется только один раз? Ведь он МОЖЕТ вставляться многократно.


PHP:
while($block=mysql_fetch_array($result)) {
echo"<table border=\"0\"  width=\"150\" cellpadding=\"0\" cellspacing=\"1\">
<tr><td colspan=\"2\" class=\"m\">".$block[BLOCK_TITLE]."</td></tr></tr>";
include("blocks/$block[BLOCK_FILE_NAME]");
echo"</td></tr></table><br>";
}
 

chmod755

Guest
да дело не в скобке, я ее добавил уже, я просто скопировал неудачно.
 

Oleg Marchuk

Человек
Не почему. Он выполняется столько раз - сколько его вызываешь. Ты просто где-то ошибся.
 

chmod755

Guest
Вот весь скрипт:

PHP:
function showblock($align){

$query="select * from blocks where BLOCK_ALIGN='1' AND BLOCK_ACTIVE='1' order by BLOCK_TITLE desc";
$result=mysql_query($query);

while($block=mysql_fetch_array($result)) {
echo"<table border=\"0\"  width=\"150\" cellpadding=\"0\" cellspacing=\"1\">
<tr><td colspan=\"2\" class=\"m\">".$block[BLOCK_TITLE]."</td></tr></tr>";
echo "blocks/$block[BLOCK_FILE_NAME]";
include("blocks/$block[BLOCK_FILE_NAME]");
echo"</td></tr></table><br>";
}

}
запрос выдает 100% 2 результата. Проверка на то что include работает только раз простая:
BLOCK_ACTIVE='1' order by BLOCK_TITLE desc"; - выводится только первый блок

BLOCK_ACTIVE='1' order by BLOCK_TITLE"; - выводится только второй блок

Оба не выводятся, может и выводятся, но я пока этого явления не наблюдал
 

Gas

может по одной?
Для тестирования пиши проще.
Чё-говорит?
PHP:
while ($block = mysql_fetch_array($result)) {
  $path = 'blocks/'.$block['BLOCK_FILE_NAME'];
  echo $path.(file_exists($path)) ? '-Есть' : '-Нет такой буквы';
}
p.s. у тебя какой-то HTML кривовытый.
Оба не выводятся, может и выводятся, но я пока этого явления не наблюдал
Ты view source смотрел или в броузере на глаз? ;)
 

chmod755

Guest
да конечно смотрел. Я уже и так и сяк тестил. Вот что выяснил. В цикле реально 2 итерации, это если инклуда нет, А ВОТ ЕСЛИ ЭТОГО ЗАСРАНЦА ВПИХНуТЬ, так токо первый инклуд выполняется, и сразу же из цикла вываливает
 

Gas

может по одной?
Если в подключаемых файлах только html и они существуют, то так не бывает.
Иначе:
PHP:
error_reporting(E_ALL);
ini_set('display_errors', '1');
не присваиваешь $result какое-то значение в include?
 

kuguarchik

Guest
так у тебя там в файле наверное простой текст, а файл после инклуда ведь интерпретируецца

то что внутри файла заключи в echo " ... ";

или я сморозил ? =)
 

SiMM

Новичок
Re: Include в цикле

Автор оригинала: chmod755
Почему include в цикле выполняется только один раз?
Во-первых, вопрос не для продвинутых, во-вторых - тут нет телепатов, и никто понятия не имеет, что ты там инклудишь. В-третьих - код:
PHP:
// 1.php
for($i=0;$i<2;$i++)include '2.php';
PHP:
// 2.php
echo $i."<br>\n";
работает вполне ожидаемым образом.
Вывод: читать PHP FAQ: Ничего не работает! Что делать??? и всегда помнить о том, что правильно поставленный вопрос содержит 90% ответа.
 

chmod755

Guest
Инклудится файл вот такого вида

PHP:
<?php


if (eregi("block_menu.php", $_SERVER['PHP_SELF'])) {
    Header("Location: index.php");
    die();
}

$query="select * from simpmenu where active=\"1\" order by pp";
$result=mysql_query($query) or die("Error");

while($menu=mysql_fetch_array($result))
{
echo "<tr align=right><td width=\"10%\">text</td></tr>";
}

?>
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: chmod755
Инклудится файл вот такого вида

PHP:
...
$result=mysql_query($query) or die("Error");
...
И стоило до этого кучу сообщений сопли жевать? У тебя, [censored], в этом файле переопределяется $result, из-за чего цикл во внешнем файле и не работает!
 

chmod755

Guest
Спасибо! теперь все заработало.


Что касательно этого говна:
PS: никто не будет отлаживать твой код за тебя - ты должен научиться делать это самостоятельно.
Так вот ЭТО меня больше всего и вымораживает, а зачам вообще форум нужен, чтобы советоваться, просить помочь, помочь кому то. Так если посмотреть, так все темы завязаны на этои, может теперь нельзя ваще темы новые создавать? Блин, кто так делает?
 
Сверху