Доброе утро! Ребята не посчитайте полным нубом, но прошу помощи казалось бы в простом вопросе. Уже второй день ломаю голову как его решить. В Google и в поиск по сайту прошу не посылать, и тем более книги листать - испробовано уже решительно всё. Хожу от ответа где-то рядом, но голова уже не варит и логика включается через раз (и то не по условию). Суть вопроса. Делаю простой каталог. Данные хранятся в MySQL в трех полях: id, cat_name, cat_img. Вывожу их с помощью даннаго кода: Код (PHP): <? $result2 = mysql_query("SELECT * FROM sws_cat"); printf ("<table>"); while($myrow = mysql_fetch_array ($result2)) { printf (" <a href=''>%s</a></td> </tr> <tr> <td><a href=''><img src='images/%s' width=90 height=80 hspace=5 vspace=10 ></a></td> </tr> </table>",$myrow["cat_name"],$myrow["cat_img"]);{ if($i%1) { printf (" <table align='center' class='listing'> <tr></tr> <tr></tr> </table>"); } } $i++; } ?> Но ни как не могу добиться правильного отображения. А именно, три картинки по горизонтали. С этим кодом у меня всё отображается совершенно неприемлемо, как уже только ни пробовал. Понимаю, что нужно сделать деление по условию и вывести в цикле. Но как реализовать, голова уже не варит. Перепробовал кучу способов из поиска, но всё тщетно. Помогите пожалуйста, разжуйте на пальцах если возможно.
не совсем понят вывод вашего хтмля но суть должна быть примерно такой: Код (PHP): if($i % 3 == 0) { // тут <tr />"; }
Код (PHP): <?php echo('<table>'); $i = 0; while($i < 100) { if(!($i % 3)) { if($i > 0) echo('</tr>'); echo('<tr>'); } echo('<td>' . $i . '</td>'); ++$i; } if($i % 3) { $needed = 3 - ($i - floor($i / 3) * 3); for($j = 0; $j < $needed; ++$j) echo('<td> </td>'); echo('</tr>'); } echo('</table>'); ?> Что-то такое, наверно
А еще можно заместо тр использовать разделитель div class="separator"></div> а для него clear:both; Если это просто картинки то как бы с точки семантики данные не табличные поэтому таблица лишнее.
Спасибо ребята что откликнулись на помощь. Раньше ответить не мог высыпался а потом инет пропал только появился на связи. И так по делу рассмотрел ваши варианты они интересные но такое чувство что я не правильно задал вопрос и вы меня не совсем поняли. Играясь сегодня днем ломая голову я пришел к такому решению вывода изображений и названий раздела из базы. Код (PHP): <? // Выбираем из таблицы "sws_cat" все поля. $result2 = mysql_query("SELECT * FROM sws_cat"); // Выводим все поля в цыкле до того момента пока не закончаться. while($myrow = mysql_fetch_array ($result2)) { // Формируем вывод категорий с помощью "DIV" а это название категории и ее картинка, три картинки по горезонтали. echo '<div style=" width:50; display:inline-block; vertical-align:top; margin:10px; ">'; echo ''.$myrow["name_cat"].'<br>'; echo '<img width="150" src="images/'.$myrow["cat_img"].'">'; echo '</div>'; } ?> Ребята подскажите со своей точки зрения я правильно делаю вывод или нет. Если нет подскажите как его сделать правильно. Спасибо.
style=" width:50; display:inline-block; vertical-align:top; margin:10px; " Заместо этого класс . Это echo '<div style=" width:50; display:inline-block; vertical-align:top; margin:10px; ">'; echo ''.$myrow["name_cat"].'<br>'; echo '<img width="150" src="images/'.$myrow["cat_img"].'">'; echo '</div>'; Я бы в один обединил $out А после вайла поставил бы print($out) Да и заместо mysql mysqli И еще num_rows>0, чтобы если записей ноль не сломалось все