Как вывести html в php

jun

Новичок
Здравствуйте! Я начал недавно изучать PHP, столкнулся с первой сложностью, как вывести html в цикле средствами php? Вот по такой структуре:

PHP:
<div class="block_thee">
<div>$row['text'][i]</div>
<div>$row['text'][i]</div>
<div>$row['text'][i]</div>
<div>$row['text'][i]</div>
</div>

<div class="block_thee">
<div>$row['text'][i]</div>
<div>$row['text'][i]</div>
<div>$row['text'][i]</div>
<div>$row['text'][i]</div>
</div>

<div class="block_thee">
<div>$row['text'][i]</div>
<div>$row['text'][i]</div>
<div>$row['text'][i]</div>
<div>$row['text'][i]</div>
</div>
Т-е один <div class="block_thee"> в нем 4 div и тд

Вот что сделал:

PHP:
while () { 

$s .= !($i % 3) ? '<div class="block_thee">' : "";  

$s .= '<div><a data-fancybox-group="gallery" rel="example_group" class="plus" href="'.$matches[2][0].'"><img width="196" height="99" title="'.$row['title'].'" src="'.$matches[2][0].'" alt="'.$row['title'].'"></a></div>';  
 $s .= !(($i+1) % $links_count) ? "</div>" : "";  

                $i++;  
}


echo $s;
 

WMix

герр M:)ller
Партнер клуба
PHP:
echo str_repeat( '<div class="block_thee">'.str_repeat('<div>$row[\'text\'][i]</div>', 4).'</div>', 3);
:)

а вообще много мест непонятно, но как идея вот скрипт (при условии что количество строк кратно 4)

PHP:
for($i=0; $i<count($row['text']); $i+=4 ){
	echo '<div class="block_thee">';
	for($j=0; $j<4; $j++ ){
		echo '<div>'.$row['text'][ $i+$j ].'</div>';
	}
	echo '</div>';
}
 

craz

Нестандартное звание
хорош а? это каждый год


Если не умеет задать вопрос то нахер такой специалист?
 

jun

Новичок
Не могу понять вашу реакцию, вполне нормально задал вопрос, до специалиста надо расти!
 

jun

Новичок
Что не ясно, я привел пример кода на html, который должен получиться в итоге, пояснил структуру
 

jun

Новичок
А, ребята, вас смуттило while )) Это я просто так написал) не в нем дело)
 

fixxxer

К.О.
Партнер клуба
все остальное ты тоже просто так написал?

давай-ка реальный код, а не просто так
 

jun

Новичок
Код я написал тот, который придумал сам.
Ваш пример выше мне не подходит.
Мне нужно вывести все записи из массива $row = mysql_fetch_array($result); без повторений.
По той структуре которую я привел.
 

WMix

герр M:)ller
Партнер клуба
твой вопрос тоже мне не подходит, я не понимаю что ты хочешь, что делать то будем?
 

jun

Новичок
Тогда попробую объяснить получше.
У меня есть массив записей, вернувшихся от mysql_fetch_array
Мне нужно сформировать строку, которую в дальнейшем сделать как echo $string;
Эта строка должна содержать все записи из массив $row.
Т-е в $string должен быть тот код html, который я написал.
Этот html надо сформировать в цикле
 

WMix

герр M:)ller
Партнер клуба
а покажи масив записей, и на второе расставь эти записи по местам
 

jun

Новичок
Массив таков:
PHP:
array(6) {
  
  [1]=>

  ["introtext"]=>
  string(59) "<p><img src="images/BFC/BFC47.jpg" border="0" alt="" /></p>",
  ["introtext"]=>
  string(59) "<p><img src="images/BFC/BFC48.jpg" border="0" alt="" /></p>",
  ["introtext"]=>
  string(59) "<p><img src="images/BFC/BFC49.jpg" border="0" alt="" /></p>"
....

}
Нужно на выходе получить:

PHP:
<div class="block_thee">
<div><img src="images/BFC/BFC47.jpg" border="0" alt="" /></div>
<div><img src="images/BFC/BFC48.jpg" border="0" alt="" /></div>
<div><img src="images/BFC/BFC48.jpg" border="0" alt="" /></div>
<div><img src="images/BFC/BFC49.jpg" border="0" alt="" /></div>
</div>

<div class="block_thee">
<div><img src="images/BFC/BFC50.jpg" border="0" alt="" /></div>
<div><img src="images/BFC/BFC51.jpg" border="0" alt="" /></div>
<div><img src="images/BFC/BFC52.jpg" border="0" alt="" /></div>
<div><img src="images/BFC/BFC53.jpg" border="0" alt="" /></div>
</div>
Думаю что лучше выводит в привычном while ($row = mysql_fetch_array($result)){

//здесь сформировать html

}
 

WMix

герр M:)ller
Партнер клуба
у меня большая проблема с пониманием, меня в детстве учили, что не бывает масивов с одинаковым индексом но с различными значениями.
 

jun

Новичок
извиняюсь, там конечно же разные индексы с разными значениями.
 

WMix

герр M:)ller
Партнер клуба
ну допустим тогда непонятно чем тебе первое решение (второй алгоритм) не нравиться?
 

jun

Новичок
Вот мой конечный код, который работает неверно:
PHP:
if (mysql_num_rows($result)>0){
					$row = mysql_fetch_array($result);

					for($i=0; $i<count($row); $i+=4 ){

						preg_match_all('/<img[^>]+src=([\'"])?((?(1).+?|[^\s>]+))(?(1)\1)/', $row['introtext'], $matches);
						
						$image = explode('/',$matches[2][0]);
						$file_name = end($image);
						array_pop($image);
						$path = implode('/',$image);

						$image = $path .'/min/min_'.$file_name;

					    $s.= '<div class="block_thee">';
					    for($j=0; $j<4; $j++ ){
					        $s.= '<div><a data-fancybox-group="gallery" rel="example_group" class="plus" href="http://ru/'.$matches[2][0].'">
								<img width="196" height="99" 
								title="'.$row['title'][$i+$j].'" src="http://ru/'.$image.'" alt="'.$row['title'][$i].'">
								</a></div>';
					    }
					    $s.= '</div>';
	
					}

		
	} else {$s=1;}
Неверное потому что он выводит записи с повторением и получается такая конструкция:

PHP:
<div id="contentd">


<div class="block_thee"><div><a data-fancybox-group="gallery" rel="example_group" class="plus" href="http://ru/images/BFC/BFC47.jpg">
								<img width="196" height="99" title="B" src="http://ru/images/BFC/min/min_BFC47.jpg" alt="B">
								</a></div><div><a data-fancybox-group="gallery" rel="example_group" class="plus" href="http://ru/images/BFC/BFC47.jpg">
								<img width="196" height="99" title="F" src="http://ru/images/BFC/min/min_BFC47.jpg" alt="B">
								</a></div><div><a data-fancybox-group="gallery" rel="example_group" class="plus" href="http://ru/images/BFC/BFC47.jpg">
								<img width="196" height="99" title="C" src="http://ru/images/BFC/min/min_BFC47.jpg" alt="B">
								</a></div><div><a data-fancybox-group="gallery" rel="example_group" class="plus" href="http://ru/images/BFC/BFC47.jpg">
								<img width="196" height="99" title="4" src="http://ru/images/BFC/min/min_BFC47.jpg" alt="B">
								</a></div></div><div class="block_thee"><div><a data-fancybox-group="gallery" rel="example_group" class="plus" href="http://ru/images/BFC/BFC47.jpg">
								<img width="196" height="99" title="7" src="http://ru/images/BFC/min/min_BFC47.jpg" alt="7">
								</a></div><div><a data-fancybox-group="gallery" rel="example_group" class="plus" href="http://ru/images/BFC/BFC47.jpg">
								<img width="196" height="99" title="" src="http://ru/images/BFC/min/min_BFC47.jpg" alt="7">
								</a></div><div><a data-fancybox-group="gallery" rel="example_group" class="plus" href="http://ru/images/BFC/BFC47.jpg">
								<img width="196" height="99" title="" src="http://ru/images/BFC/min/min_BFC47.jpg" alt="7">
								</a></div><div><a data-fancybox-group="gallery" rel="example_group" class="plus" href="http://r/images/BFC/BFC47.jpg">
								<img width="196" height="99" title="" src="http://ru/images/BFC/min/min_BFC47.jpg" alt="7">
								</a></div></div>


</div>
 

WMix

герр M:)ller
Партнер клуба
это потомучто ты считал всего одну строчку
PHP:
$row = mysql_fetch_array($result);
а после крутишь ее покругу
обращаю внимание на titel там всего 1 буква, опять же потому, что ты неправильно написал вопрос...
 

jun

Новичок
как будет правильно? Могли бы подсказать? как мне в for прокрутить?
 
Сверху