|
|
|
| Всем привет!
возникла задача вывести все фото из DB по три в ряд - следующий ряд это описания.
по принципу:
table width="100%" border="1" cellspacing="10" cellpadding="3" align="center">
<tr>
<td><img src="#" width="200" height="120" /></td>
<td><img src="#" width="185" height="150" /></td>
<td><img src="#" width="123" height="150" /></td>
</tr>
<tr>
<td>описание1</td>
<td>описание2</td>
<td>описание3</td>
</tr>
.......и.т.д.
|
=========================================
Фото то выводится, а прикрутить нижний ряд.. никак!
<?php
.....
$numcols = 3;
$counter = 0;
echo '<table width="100%" border="1" cellspacing="10" cellpadding="5" align="center">';
while ($rowM = mysql_fetch_assoc($queryM)){
if ($counter == 0) {echo '<tr>';}
if ($counter == $numcols){echo "</tr>"; $counter =0; }
echo "<td>".$rowM['linkm']."</td>";
$counter++;
}
echo "</table>";
}
?>
|
Если есть знания или мысли как можно сделать, буду рад помощи..
Заранее благодарен. | |
|
|
|
|
|
|
|
для: denandi
(29.08.2010 в 19:18)
| | Сначало вот - почитай http://ru.wikipedia.org/wiki/Стандарт_кодирования.
<?php
$numcols = 3;
$counter = 0;
echo '<table width="100%" border="1" cellspacing="10" cellpadding="5" align="center">';
$descRows = array();
while ($rowM = mysql_fetch_assoc($queryM)) {
$descRows[] = $rowM['поле, в котором содержится описание'];
if ($counter == 0) {
echo '<tr>';
}
if ($counter == $numcols) {
echo '</tr>';
echo '<tr>';
foreach($descRows as $descRow) echo '<td>'.$descRow.'</td>';
echo '</tr>';
$descRow = array();
$counter = 0;
}
echo "<td>" . $rowM['linkm'] . "</td>";
$counter++;
}
echo "</table>";
|
| |
|
|
|
|
|
|
|
для: nikita2206
(29.08.2010 в 22:46)
| | >Сначало вот - почитай http://ru.wikipedia.org/wiki/Стандарт_кодирования.
- Без паники, все 'вытянул' специально.. экономия места.. :)
про помощь, спасибо. немного не доработано (описание не делится по три в строку), позже будем смотреть. | |
|
|
|
|
|
|
|
для: nikita2206
(29.08.2010 в 22:46)
| | Не, данный вариант не подходит.
Описание выводится - ВСЕ.
А по условию задачи надо что бы она нарезалась,
так же как и строка "$rowM['linkm']" -по три штуки в ряд.
|
Перепробовал по разному, но сложить эти две строки по 3 в ряд - никак .
Народ, нужна ваша помощь! :) | |
|
|
|
|
|
|
|
для: Denandi
(31.08.2010 в 06:38)
| | можно сделать по принципу вложенных таблиц
примерно так
<?php
echo "<table>";
/* временная переменная */
$td = 0;
while(){
if($td == 0) echo "<tr>";
echo "<td>
<table>
<tr>
<td>картинка</td>
</tr>
<tr>
<td>описание</td>
</tr>
</table>
</td>";
$td++;
if($td == 3){
echo "</tr>";
$td = 0;
}
}
echo "</table>";
?>
|
что то вроде этого. можно попробовать не использовать вложенную таблицу, но это на Ваше усмотрение | |
|
|
|
|
|
|
|
для: Slo_Nik
(31.08.2010 в 10:00)
| | Спасибо за решение. Работает, но получается по принципу:
echo "<td>" .$rowM['linkm'] . "<div>".$rowM['titlem'];."</div></td>";
|
вся таблица плывет, все заголовки выше-ниже... что не является визуально симпатичным. | |
|
|
|
|
|
|
|
для: Denandi
(31.08.2010 в 11:14)
| | что именно плывёт? тот вариант, что я дал или Ваш с дивами?
А самое главное, выводит информацию так как Вам надо, по три изображения в ряд и под каждым соответствующее описание ? | |
|
|
|
|
|
|
|
для: Slo_Nik
(31.08.2010 в 16:05)
| | >что именно плывёт? тот вариант, что я дал или Ваш с дивами?
Ваш вариант рабочий! Но, он такой же по качеству, что и с див.
Поясню, если фото имеют разные размеры, то и заголовок получается выше или ниже. если смотреть на этот синусоид.. то разница очевидна при сравнении с табл. данной в качестве примера , выше.
Но нарезало все четко. Хотя, при таком результате, можно выбрать вариант на дивах
Мне пришлось отказаться от подобного т.з. и перевести в другое более мягкое русло.
По сему, всем спасибо. жаль что решение так и не нашел. | |
|
|
|
|
|
|
|
для: Denandi
(31.08.2010 в 21:04)
| | а применить css к оформлению ячеек таблицы или дивов ни как? тоже самое с тексту под фотографией.
Вы просили Вам показать, как можно сделать вывод информации, а по оформлению это уже совсем другой вопрос, да и на совершенно другом форуме.
или Вы думали, что информация сама себя оформит?
скриншот приложите "плывущего" сайта, пожалуйста | |
|
|
|
|
|
|
|
для: Slo_Nik
(31.08.2010 в 21:46)
| | :) Slo_Nik, что вас так зацепило? я же сказал, ваше решение рабочее, задачу выполнили. Просто результат получается такой же как и у меня с вложенным дивом.
css не спасло, пробовал.
я не говорю что css не может выровнять.. у меня не получилось.
И вообще я считал что эта задача 100% разрешима естественным путем, просто зависит от уровня знаний. Поэтому и пытался найти решение макс. похожее на табличный вариант. а css это оформление которое впоследствии дополнит сделанное.
Скрин, показать не могу.. так как перевел задачу в другое русло.
В любом случае, спасибо за помощь. | |
|
|
|
|
|
|
|
для: Denandi
(01.09.2010 в 08:30)
| | меня ни чего не цепляло, но повозиться с css Вам надо, что бы придать Вашей информации надлежащий вид.
>И вообще я считал что эта задача 100% разрешима естественным путем, просто зависит от уровня знаний
Вот Вам как раз знаний по css не хватило, посмотрите, почитайте и всё получится. | |
|
|
|
|
|
|
|
для: Denandi
(01.09.2010 в 08:30)
| | Значит вас одна таблица для форматирования вывода не устраивает, вам лучше куча их подходит? | |
|
|
|
|
|
|
|
для: sim5
(01.09.2010 в 12:24)
| | >Значит вас одна таблица для форматирования вывода не устраивает, вам лучше куча их подходит?
Устраивает? :))
sim5, именно одна таблица и есть грамотное решение.
Вот, мне очень импонирует ваш вариант. Спасибо за подсказку.
Использовать в эти разы уже не получится, но в шпаргалку занес... :) | |
|
|
|
|
|
|
|
для: Denandi
(01.09.2010 в 14:29)
| | В предложенном выше не видно, чтобы это была одна таблица, а ниличие множества вложенных таблиц, это первое. А второе, это то, что они по большому счету вообще не нужны, не табличные данные чай выводите, и то, что вас устраивает лишнее на странице весьма печально. Улыбаться нет причины... | |
|
|
|
|
|
|
|
для: Denandi
(31.08.2010 в 06:38)
| | Вам просто надо задуматься - каждая строка записи, это изображние плюс описание, и если выводить описания в следующей строке таблицы, то значит их надо запоминать и выводить после вывода изображений:
<?
$a = array(
array('img'=>'img 1', 'desc'=>'text 1'),
array('img'=>'img 2', 'desc'=>'text 2'),
array('img'=>'img 3', 'desc'=>'text 3'),
array('img'=>'img 4', 'desc'=>'text 4'),
array('img'=>'img 5', 'desc'=>'text 5'),
array('img'=>'img 6', 'desc'=>'text 6'),
array('img'=>'img 7', 'desc'=>'text 7'),
array('img'=>'img 8', 'desc'=>'text 8'),
array('img'=>'img 9', 'desc'=>'text 9')
);
$col = 3;
$row = '';
?>
<table cellpadding="9" cellspacing="1" bgcolor="#000000">
<?
for($i=0; $i<count($a); $i++) {
if(!($i % $col)) echo $row = '<tr bgcolor="#ffffff">';
echo '<td>' . $a[$i]['img'] . '</td>';
$row .= '<td>' . $a[$i]['desc'] . '</td>';
if(!(($i+1) % $col)) echo '</tr>' . $row . '</tr>';
}
?>
</table>
|
| |
|
|
|