[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод в цикле в 4 колонки php + mysql
mmsgold
вообщем проблема такая надо в теле таблицы вывести по 4 таблицы в ряд в цикле, вывести в цикле данные не составляет труда, а вот как вывести 4 раза
<TD>
<TABLE width="121" height="172" border="0" cellpadding="0" cellspacing="0" style="margin:15">
<TBODY>
<TR>
<TD><A href=""><IMG src="/files/films/t627.jpg" border="0"></A></TD>
<TD width="14" rowspan="2"><IMG src="/files/pic/afisha_43.jpg" width="14" height="172"></TD>
</TR>
<TR><TD height="15"><IMG src="/files/pic/afisha_45.jpg" width="107" height="15"></TD></TR>
</TBODY>
</TABLE>
</TD>
а потом вставить теги
</TR>
<TR> вот тут я и застрял

sergeiss
Один из вариантов, самый правильный - это сначала закачать данные в массивы, а потом уже вставлять их куда надо.
Опять же, тут вопрос больше не про ПХП, как мне кажется, а про HTML/CSS.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
mmsgold
не не не ок, рассказываю, вот как я делаю
do
{

printf ('<TD><TABLE width="121" height="172" border="0" cellpadding="0" cellspacing="0" style="margin:15">
<TBODY>
<TR>
<TD><A href="">%s</A></TD>
<TD width="14" rowspan="2"><IMG src="/files/pic/afisha_43.jpg" width="14" height="172"></TD>
</TR>
<TR><TD height="15"><IMG src="/files/pic/afisha_45.jpg" width="107" height="15"></TD></TR>
</TBODY>
</TABLE></TD>',$myrow2012[mini_img]);

}
while ($myrow2012 = mysql_fetch_array($result2012));

но так выводит без перевода строки, а надо чтоб так выводило 4 раза потом на новую строку т.е
</TR>
<TR>
и дальше если есть еще 4 то снова на новую и до конца
то есть этот код в теле таблицы с открытой строкой <TR>
sergeiss
Ну и в чем проблема? Заводишь переменную "счетчик циклов", используешь операцию "остаток от деления" и получаешь то, что нужно:
$loop=1;
while( .... )
{
...
if( $loop % 4 == 0 )
{ это индиктор того, что у тебя как раз ровно 4 элемента вывелись, делай новую строку }

...
$loop++;
}


ЗАБУДЬ про цикл do-while!
Он для других целей нужен, а не в такой ситуации.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
mmsgold
спасибо за ответ работает! rolleyes.gif , но в базе 7 записей а выводит почему то 6, может здесь как раз do while, вообще не пойму почему 6 ведь поидее последнее 7 условие тоже истина и цикл должен сработать
$loop=1;

while( $myrow2012 = mysql_fetch_array($result2012) )
{
printf ('<TD><TABLE width="121" height="172" border="0" cellpadding="0" cellspacing="0" style="margin:15">
<TBODY>
<TR>
<TD><A href="">%s</A></TD>
<TD width="14" rowspan="2"><IMG src="/files/pic/afisha_43.jpg" width="14" height="172"></TD>
</TR>
<TR><TD height="15"><IMG src="/files/pic/afisha_45.jpg" width="107" height="15"></TD></TR>
</TBODY>
</TABLE></TD>',$myrow2012[mini_img]);
if( $loop % 4 == 0 )
{ echo '</TR><TR>'; }
$loop++;

}

кстати попробовал do while и вывело все ??? так почему
если просто while условие истина должен был вывести последнюю запись
а в do while сначала выполнит а потом проверит на повтор..... перепроверил скрипт не выводит первую запись
sergeiss
Цитата (mmsgold @ 4.11.2012 - 15:12)
но в базе 7 записей а выводит почему то 6.... перепроверил скрипт не выводит первую запись

Скорее всего потому, что у тебя от использования цикла do-while осталось чтение одной строки, которое делается "по-кривому поповскому коду" перед циклом. Проверь и удали. С вероятностью 99.9% это так smile.gif 0.1 % оставляю на всякий случай.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
mmsgold
все правильно говоришь =) учил пхп по попову,,, но перед этим циклом пхп у меня такой
<?php include ("blocks/db.php");?>
<?
$result2012 = mysql_query("SELECT id,title_f,cat,mini_img,img,video,description FROM films ORDER BY id DESC",$db);
if (!$result2012)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору mmsgold@yandex.ru <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result2012) > 0)

{
$myrow2012 = mysql_fetch_array($result2012);
}

else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>
и по идее то все верно (ну мне так кажется)
вытаскиваю в переменную запрос, проверяю на истинность, если есть записи создаю массив
а далее этот цикл
sergeiss
Короче говоря... Иди-ка ты сюда: http://phpforum.ru/index.php?showtopic=21916

PS. Ну нахрена вот эта строка, а????

Цитата (mmsgold @ 4.11.2012 - 16:08)
$myrow2012 = mysql_fetch_array($result2012);

Вот скажи. Что, по-твоему, делает эта строка? Я имею ввиду ту, которая расположена ВНЕ ЦИКЛА.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
mmsgold
ок обязательно зайду и все подробно изучу, а эта строка .... я в переменную загоняю масссив... зы по попову(
sergeiss
Цитата (mmsgold @ 4.11.2012 - 16:29)
ок обязательно зайду и все подробно изучу, а эта строка .... я в переменную загоняю масссив... зы по попову(

Объясняю... Ты читаешь одну строку ДО НАЧАЛА ЦИКЛА и потом эти данные просто теряешь. Поэтому ты и недополучаешь одну строку, когда используется нормальный цикл, максимально подходящий для данной ситуации.

Ты попробуй использовать "поповский" цикл при отстутствии данный и сразу же поймешь весь его дебилизм.

PS. А вот интересно smile.gif Кто-нибудь когда-нибудь пытался подать на Попова в суд за то, что он предоставляет товар (услугу) ненадлежащего качества? Если смотреть с точки зрения закона, то оно именно так и есть. 100% (сто процентов!!!) людей переучиваются после его курсов. А он всё еще процветает.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

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