[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вывод данных в 4 колонки
zeromind
вообщем сабж, нужно из mysql вывести данные (примерно квадраты: картинка+текст) в 4 ряда(колонки)..
сейчас имею вот такой код:

$result = mysql_query("SELECT id,title,date,author,mini_img,view,rating,q_vote,country,style,year FROM data WHERE cat='$cat' ORDER BY title LIMIT $start, $num",$db);


if (!$result)
{
echo "<h6>Запрос не прошел<h6>
<h2><b>Код ошибки:</b></h2>"
;

exit(mysql_error());
}

if (mysql_num_rows($result) > 0)
{
$myrow=mysql_fetch_array($result);

do {

$r = $myrow["rating"]/$myrow["q_vote"];
$r=intval($r);
printf ("<div class='main_gr'>
<div class='gr'><strong>Название группы:  <a href='view_post.php?id=%s'>%s</a></strong></div>

<div class='grboth'><div class='gr1'><img class='left' src='bands/%s'></div>

<div class='gr2'><h8><strong>Страна: </strong>%s<br>
<strong>Стиль: </strong>%s<br>
<strong>Год: </strong>%s<br>
<strong>Рейтинг: </strong><img src='img/f%s.png'>
</h8></div></div>

<div class='gr3'>Дата добавления: <strong>%s</strong> ||  Добавил: <strong>%s</strong>  ||  Просмотров: <strong>%s</strong>  ||  ||  <a href='view_post.php?id=%s'><strong>Подробнее</strong></a>  <img src='img/next1.png' /></div>
</div>
<div class='line'></div>"
,$myrow["id"],$myrow["title"], $myrow["mini_img"],$myrow["country"],$myrow["style"],$myrow["year"], $r,
$myrow["date"],$myrow["author"], $myrow["view"], $myrow["id"]);


}

while ($myrow = mysql_fetch_array($result));


в результате этого кода - выводиться командой printf блоки сверху вниз по 1ому в ряду..
почему не хочу таблицы? нужны css свойства блоков типо hover и тд..

помогите пожалуйста, закрепленную тему в этом форуме я читал (где показаны примеры таблицей..)



Спустя 22 минуты, 37 секунд (13.08.2011 - 16:48) Xes написал(а):
Твой код как я понял здесь соврешено не причем выводить можно все что угодно тебе нужно в свойствах в стилях блока прописать float:left для блоков свойствоwidth:300px; - задать таккое чтобы пятый див выводился вторым рядом. либо считать дивы и после 4го ставить див разделитель.
Либо делать табличную разметку дивами.
http://htmlbook.ru/css/display
http://htmlbook.ru/css/float

Спустя 23 минуты, 48 секунд (13.08.2011 - 17:11) zeromind написал(а):
Цитата (Xes @ 13.08.2011 - 16:48)
Твой код как я понял здесь соврешено не причем выводить можно все что угодно тебе нужно в свойствах в стилях блока прописать float:left для блоков свойствоwidth:300px; - задать таккое чтобы пятый див выводился вторым рядом. либо считать дивы и после 4го ставить див разделитель.
Либо делать табличную разметку дивами.
http://htmlbook.ru/css/display
http://htmlbook.ru/css/float

мой код - это то что я сейчас имею, вывод 1ого блока в строке (т.е. на всю ширину контейнера)

а как сделать то что ты предложил - "чтобы пятый див выводился вторым рядом. либо считать дивы и после 4го ставить див разделитель"? можешь помоч? )

если в свойстах дива будет ширина 300пх, и флоат-лефт, то я так понимаю дивы будут идти в ряд пока не кончиться ширина контейнера? и они перенесуться автоматом на новую строку? если это так, то мне подходит.. контейнер у меня фиксированный..

Спустя 4 часа, 24 минуты, 59 секунд (13.08.2011 - 21:36) kirik написал(а):
Цитата (zeromind @ 13.08.2011 - 10:11)
то я так понимаю дивы будут идти в ряд пока не кончиться ширина контейнера? и они перенесуться автоматом на новую строку? если это так, то мне подходит..

В чём проблема попробовать это сделать?

Спустя 19 часов, 54 минуты, 18 секунд (14.08.2011 - 17:31) zeromind написал(а):
вообщем вроде всё ок, правда из за сложности завернутых дивов в другие дивы - наблюдаеться смещение их по высоте на 10 px, думаю исправлю..

Спустя 46 минут, 43 секунды (14.08.2011 - 18:17) Xes написал(а):
css пропиши
div{
padding:0;
margin:0;
}
если кнечно я правельно понял твою проблему.

Спустя 26 минут, 9 секунд (14.08.2011 - 18:44) imbalance_hero написал(а):
zeromind
Дивы нужны в местах, где нужны дивы, таблицы -где нужны таблицы.
Я бы сделал на таблицах :)
А разбить на 4 колонки так:
if($i%4==0)
echo '</tr><tr>';

Спустя 19 минут, 49 секунд (14.08.2011 - 19:03) zeromind написал(а):
Цитата (imbalance_hero @ 14.08.2011 - 18:44)
zeromind
Дивы нужны в местах, где нужны дивы, таблицы -где нужны таблицы.
Я бы сделал на таблицах :)
А разбить на 4 колонки так:
<pre class="sh_sourceCode" rel="php"><span class="sh_control">if</span><span class="sh_symbol">(</span><span class="sh_variable">$i</span><span class="sh_symbol">%</span><span class="sh_number">4</span><span class="sh_symbol">==</span><span class="sh_number">0</span><span class="sh_symbol">)</span>
    <span class="sh_function">echo</span> <span class="sh_string">'</tr><tr>'</span><span class="sh_symbol">;</span></pre>

вот как раз таки, таким методом у меня ни чего не получилось(
пример мне давали:
<?php
$data = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 );

$counter = 0;
foreach ($data as $number) {
print $number;
$counter++;
if ($counter % 4 == 0)
print "<br>\n";
else
print " ";
}


при % 4 - вообще ошибку писало, при % 1 ==0 выводилось всё так же в 1 ряд.. возможно просто я не разобрался с кодом..

update: вообщем вылаживаю примерный результат (для пробы в 2 столбика) 3 блока всего.. блоки теперь ровные, раньше стоял перенос.. поэтому был косяк.. теперь даже ставя пробел блоки стоят слитно(вплотную друг к другу) - ну это margin'ом я поправлю.. но есть косяк - страничная навигация из за float'a соскочила снизу, причем не на вторую строчку, а на первую (не понял почему).. ну я думаю создание нового блока под этими это исправит ? или новый блок так же будет по свойству прилегать к тому ? ) clear:both сдесь не поможит? )

Спустя 6 минут (14.08.2011 - 19:09) imbalance_hero написал(а):
zeromind
http://inpost.dp.ua/fx1.php

На странице только лишь твой код, который ты показал. Всё прекрасно работает.

Можешь убедиться сам: http://my.jetscreenshot.com/demo/20110814-rxwj-18kb

Спустя 6 минут, 41 секунда (14.08.2011 - 19:16) zeromind написал(а):
старт сессии обязателен? ) мне бы применить эту функцию к моему примеру) вместо дата массива у меня получаеться $result = mysql_query ?

Спустя 2 минуты, 3 секунды (14.08.2011 - 19:18) imbalance_hero написал(а):
zeromind
нет, начало то вообще лишнее, просто это тестовые файлы, поэтому в них автоматически включены нужные мне настройки.

Спустя 1 минута, 50 секунд (14.08.2011 - 19:20) zeromind написал(а):
Цитата (imbalance_hero @ 14.08.2011 - 19:18)
zeromind
нет, начало то вообще лишнее, просто это тестовые файлы, поэтому в них автоматически включены нужные мне настройки.

у меня показывает дрививер ошибку, после кода на другой строке..

Спустя 7 минут, 40 секунд (14.08.2011 - 19:28) imbalance_hero написал(а):
Скрин-шот выстави, покажи smile.gif

Спустя 8 минут, 14 секунд (14.08.2011 - 19:36) zeromind написал(а):
сорри, мой косяк был, щяс выводиться, вот ток 1-2 строка - по 3 цифры, 3строчка - 4, последняя строчка - 2 цифры, как-то не айс..
меня сейчас полностью устраивает вариант float:left + width: N px
вот ток проблема одна - как сделать чтоб после последнего элемента не было обтекания? )

Спустя 32 минуты, 53 секунды (14.08.2011 - 20:09) imbalance_hero написал(а):
zeromind
<div style="clear:both"></div> ?

Спустя 6 минут, 38 секунд (14.08.2011 - 20:15) zeromind написал(а):
клеар: баф; не помогает! наооборот блоки в 1 столбик делает + промежуток на пол страницы)

update: вообщем добавил Clear:both страничной навигации - всё ок, кстате а float:none не помог!
мда а я думал мне понадобиться php) CSS тащит smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.