[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод двух постов, в одну горизонтальную строку.
aveBen
Коллеги, подскажите пожалуйста, у меня есть 6 столбцов. Они идут сверху, вниз по порядку.

Т.е.
1
2
3
и т.д.

Как сделать их по 2 в ряду?
1 2
3 4
и т.д.

Сами по себе они маленькие и по 3-4 могут поместиться.

Заранее спасибо!!!



Спустя 16 минут, 43 секунды (29.12.2011 - 01:29) Winston написал(а):
$arr = range(1, 10);
$i = -1;
echo "<table border='1'><tr>\n";
while($i < (sizeof($arr)-1))
{
$i++;
echo "<td>";
echo $arr[$i];
echo "</td>\n";
if(($i % 2) != 0)
echo "</tr><tr>";
}
echo "</tr></table>";

Спустя 12 минут, 37 секунд (29.12.2011 - 01:42) aveBen написал(а):
Спасибо за отклик!
Что-то на подобии этого я уже проходил. Я из уроков Irbis-Team, не могу никак понять как это реализовать в конструкции MVC.

controller.php

    $collect = new collection_model('collection');

if($GET['mod'] === 'collection')
{
$collect -> createCategory($GET['parent']);
$collect -> createCollect($GET['id']);
$back_link = '<a href="'. href('mod=cat', 'parent='. $GET['parent']) .'">'. IRB_LANG_BACK .'</a>';
$cat_name = $collect -> cat_name;
$collection = $collect -> createRows('collection/collection', 'collection');
}
elseif($GET['mod'] === 'cat')
{
$collect -> createCategory($GET['parent']);
$collect -> createListCollect($GET['parent'], IRB_CONFIG_NUM_WORDS);
$back_link = '<a href="'. href('mod=all') .'">'. IRB_LANG_BACK .'</a>';
$cat_name = $collect -> cat_name;
$collection = $collect -> createRows('collection/rows', 'collection', true);
}
else
{
$collect -> createCategory();
$cat_name = $back_link = '';
$collection = $collect -> createRows('collection/rows', 'cat');
}

include IRB_ROOT .'/skins/tpl/collection/show.tpl';


model.php


class collection_model
{

public $table, $cat_name;
private $res;

/**
* Конструктор
* @param string $table
*/
public function __construct($table)
{
$this->table = $table;
}

/**
* Метод генерации списка категорий
* @param int $id
* @return void
*/
public function createCategory($id = '')
{
$sql = empty($id) ? ' ORDER BY `sort` ASC ' : ' WHERE `id` = '.(int)$id ;

$res = mysqlQuery("SELECT *
FROM `". IRB_DBPREFIX . $this->table ."_cat`
". $sql
);

if(empty($id))
$this->res = $res;
else
$this->cat_name = mysql_result($res, 0, 'name');
}

/**
* Метод генерации списка товаров выбранной категории
* @param int $id
* @param int $num_words
* @return void
*/
public function createListCollect($id, $num_words)
{
$this->res = mysqlQuery("SELECT `id`, `name`, `photo`,
SUBSTRING_INDEX(`description`,' ', ". $num_words .") AS `description`
FROM `". IRB_DBPREFIX . $this->table ."`
WHERE `id_parent` = ".(int)$id ."
ORDER BY `sort` ASC "
);
}

/**
* Метод генерации товара
* @param int $id
* @return void
*/
public function createCollect($id)
{
$this->res = mysqlQuery("SELECT *
FROM `". IRB_DBPREFIX . $this->table ."`
WHERE `id` = ".(int)$id
);

}

/**
* Метод представления.
* @param string $template
* @param string $mod
* @param string $flag
* @return string
*/
public function createRows($template, $mod, $flag = false)
{
$rows = '';
$tpl = getTpl($template);

while($row = mysql_fetch_assoc($this->res))
{
$row['name'] = htmlspecialchars($row['name']);
$row['description'] = nl2br(htmlspecialchars($row['description']));
$row['src'] = !empty($row['photo']) ? IRB_HOST . 'upload/' . $row['photo'] : '';

if(!$flag)
$row['url'] = href('mod='. $mod, 'parent='. $row['id']);
else
$row['url'] = href('mod='. $mod, 'id='. $row['id']);


$rows .= parseTpl($tpl, $row);
}
return $rows;
}
}


TPL-ка

<div class="production_row">
<h3><?php
echo $tpl_name; ?></h3>
<img
src="<?php echo $tpl_src; ?>"
width="120px" height="120px"
alt="<?php echo $tpl_name; ?>"
title="<?php echo $tpl_name; ?>"
border="1" align="left" />

<?php
echo $tpl_description; ?>
<br /><br />
<a
href="<?php echo $tpl_url; ?>">Подробнее</a>
</div>



Помогите, пожалуйста!!! В этом случае он стандартно горизонтально идет, строка, над\под строкой. :\

Спустя 15 часов, 31 минута, 31 секунда (29.12.2011 - 17:14) aveBen написал(а):
Подскажите кто нибудь пожалуйста, уже исковырял весь контроллер с шаблоном, не выходит sad.gif

Я так понял что в данном случае модель я не трогаю вообще?

Спустя 5 часов, 41 минута, 50 секунд (29.12.2011 - 22:55) Winston написал(а):
В какой переменной хранятся данные которые нужно вывести в две колонки ?

Спустя 8 минут, 5 секунд (29.12.2011 - 23:03) aveBen написал(а):
Цитата (Winston @ 29.12.2011 - 19:55)
В какой переменной хранятся данные которые нужно вывести в две колонки ?

Вот в этой - $collection.

Данные - таблицы с информацией, они идут сверху вниз, по одной таблице, хотелось бы что бы сверху и вниз но по две таблицы в ряд.

Спустя 22 часа, 44 минуты, 49 секунд (30.12.2011 - 21:48) aveBen написал(а):
Даже и не знаю что и делать, прогуглил, выдало пару вариантов, но не вышло sad.gif

Уже надежду потерял...

Спустя 8 минут, 15 секунд (30.12.2011 - 21:57) Winston написал(а):
Эту тему не смотрел ?

Спустя 1 час, 17 минут, 6 секунд (30.12.2011 - 23:14) aveBen написал(а):
Цитата (Winston @ 30.12.2011 - 18:57)
Эту тему не смотрел ?

Читал, пытался внедрить код в скрипт от Ирбисов. Он мне на сайт выводит информацию самого файла (show.tpl) изнутри почему-то. Имею ввиду код, ошибка моя в том, что не получилось правильно запрос к БД составить, включая в него (запрос) код из того поста Kirika.

Помогите пожалуйста запрос составить со скриптом генерации информации в горизонтальном виде, в остальном вроде все должно работать.

Спустя 2 дня, 19 часов, 51 минута, 6 секунд (3.01.2012 - 19:05) aveBen написал(а):
Никто не поможет? sad.gif

Спустя 5 дней, 6 часов, 31 минута, 52 секунды (9.01.2012 - 01:37) aveBen написал(а):
Ну хоть кто нибудь, откликнитесь ! Уже мозг сломал, не выходит ничего sad.gif

Спустя 17 минут, 18 секунд (9.01.2012 - 01:54) redreem написал(а):
конкретизируй задачу. тебе нужен php-код или вариант верстки? если верстка - чем верстать - дивами, таблицами?

Спустя 18 часов, 5 минут, 6 секунд (9.01.2012 - 19:59) aveBen написал(а):
Цитата (redreem @ 8.01.2012 - 22:54)
конкретизируй задачу. тебе нужен php-код или вариант верстки? если верстка - чем верстать - дивами, таблицами?

php код, который встроен будет в вышеизложенные мною части MVC. На данный момент, у меня таблицы идут сверху вниз, а нужно что бы 3 таблицы в ряд допустим и так далее, тоже сверху вниз.

Спустя 15 часов, 13 минут, 22 секунды (10.01.2012 - 11:12) aveBen написал(а):
Помогите решить задачу, пожалуйста!!! sad.gif

Спустя 22 часа, 45 минут, 2 секунды (11.01.2012 - 09:57) aveBen написал(а):
Откликнитесь хоть кто нибудь, пожалуйста!!! sad.gif Проблема для меня очень актуальна... :\

Спустя 14 часов, 42 минуты, 38 секунд (12.01.2012 - 00:40) aveBen написал(а):
Люди ау, я же не так много прошу, всего лишь помочь или объяснить мне как составить запрос к БД на примере кода выше...

Как в этом посте.

Пожалуйста, помогите !!! sad.gif

Спустя 36 минут, 8 секунд (12.01.2012 - 01:16) inpost написал(а):
Winston дал АБСОЛЮТНО готовый код. Лишь переменные нужные подставь. Разве много работы осталось для самого себя?

Спустя 17 минут, 55 секунд (12.01.2012 - 01:34) aveBen написал(а):
Цитата (inpost @ 11.01.2012 - 22:16)
Winston дал АБСОЛЮТНО готовый код. Лишь переменные нужные подставь. Разве много работы осталось для самого себя?

Не вышло с тем кодом у меня, я не могу никак понять как это в MVC ирбиса реализовать, уже и перечитал уроки, и код исковырял весь и методом тыка пробовал... Не выходит sad.gif

Спустя 16 часов, 38 минут, 37 секунд (12.01.2012 - 18:13) aveBen написал(а):
inpost
Помогите пожалуйста грамотно написать код. Я обычно сам пытаюсь вникнуть, но тут торможу жутко...

Буду очень благодарен и признателен!!!
P.S.
Благодарность выражу материально, через веб мани!

Спустя 5 часов, 39 минут, 3 секунды (12.01.2012 - 23:52) aveBen написал(а):
Получилось вывести таблицы в ряд горизонтально, только проблема в том, что выводит по 2 одинаковые, т.е.

1-1
2-2
3-3

Спустя 4 минуты, 9 секунд (12.01.2012 - 23:56) Winston написал(а):
Цитата (aveBen @ 12.01.2012 - 22:52)
Получилось вывести таблицы в ряд горизонтально, только проблема в том, что выводит по 2 одинаковые, т.е.

1-1
2-2
3-3

Покажи код, как сделал.

Спустя 5 минут, 26 секунд (13.01.2012 - 00:01) aveBen написал(а):

<?php
$arr = range(1, 5);
$i = -1;
echo "<table border='1'><tr>\n";
while($i < (sizeof($arr)-1))
{
$i++;
echo "<td>";
// переменная с данными
echo $collection;
echo "</td>\n";
if(($i % 2) != 0)
echo "</tr><tr>";
}
echo "</tr></table>";
?>


Если я правильно понял свою ошибку, он выводит из таблицы БД одну запись 2 раза...

Спустя 8 минут, 51 секунда (13.01.2012 - 00:10) Winston написал(а):
Ну в твоем случае вот так можно
$i = -1;
echo "<table border='1'><tr>\n";
while($row = mysql_fetch_assoc($result))
{
$i++;
echo "<td>";
// переменная с данными
echo $row['name'];
echo "</td>\n";
if(($i % 2) != 0)
echo "</tr><tr>";
}
echo "</tr></table>";

Спустя 19 минут, 43 секунды (13.01.2012 - 00:30) aveBen написал(а):
Цитата (Winston @ 12.01.2012 - 21:10)
Ну в твоем случае вот так можно
$i = -1;
echo "<table border='1'><tr>\n";
    while($row = mysql_fetch_assoc($result))
    {
        $i++;
        echo "<td>";
      // переменная с данными
        echo $row['name'];
        echo "</td>\n";
        if(($i % 2) != 0)
            echo "</tr><tr>";
    }
echo "</tr></table>";

Сразу вопрос, если сам запрос к базе идет в другом файле (что я приводил выше), как я вытащу ассоциативный массив в шаблонизаторе? Ведь если вставить переменную
$collection
вместо result, ошибку выдаст...

Спустя 47 минут, 11 секунд (13.01.2012 - 01:17) Winston написал(а):
Значит лучше в обработчике делать
while($row = mysql_fetch_assoc($result))
$data[] = $row;


А в шаблонизаторе писать
$i = -1;
echo "<table border='1'><tr>\n";
while($i < sizeof($data))
{
$i++;
echo "<td>";
// переменная с данными
echo $data[$i]['name'];
echo "</td>\n";
if(($i % 2) != 0)
echo "</tr><tr>";
}
echo "</tr></table>";


PS: не тестил, но вроде должно работать.

Спустя 20 часов, 30 минут, 19 секунд (13.01.2012 - 21:47) aveBen написал(а):
Цитата (Winston @ 12.01.2012 - 22:17)
Значит лучше в обработчике делать
while($row = mysql_fetch_assoc($result))
$data[] = $row;


PS: не тестил, но вроде должно работать.

Я не совсем понимаю как это внедрить в обработчик, точнее в какой запрос именно, из того кода обработчика что я выложил выше..

Как это реализовать, подскажите пожалуйста.

Спустя 36 минут, 9 секунд (13.01.2012 - 22:24) inpost написал(а):
aveBen
В данном случае используй внутри .tpl полностью while() { }, который обычным include подключи, а не через шаблонизатор getTpl, как ты делаешь, если я правильно тебя понял.

Спустя 25 минут, 45 секунд (13.01.2012 - 22:49) aveBen написал(а):
Цитата (inpost @ 13.01.2012 - 19:24)
aveBen
В данном случае используй внутри .tpl полностью while() { }, который обычным include подключи, а не через шаблонизатор getTpl, как ты делаешь, если я правильно тебя понял.

Последний код, который привел Winston, я делаю так:

while (){} в show.tpl

while который получает ассоциативный массив, в model.php

Вот как раз с последним и трудности, у меня же информация из БД идет, следовательно нужно каким-то образом этот while внедрить в model.php. Ну это если я хотя бы приблизительно правильно понял, технологию MVC.

Спустя 1 день, 5 часов, 7 секунд (15.01.2012 - 03:49) aveBen написал(а):
Цитата (Winston @ 12.01.2012 - 22:17)
Значит лучше в обработчике делать
while($row = mysql_fetch_assoc($result))
    $data[] = $row;


PS: не тестил, но вроде должно работать.

Помогите пожалуйста грамотно составить обработчик с функцией while.

А то у меня уже паника начинается, все что до этого по урокам Ирбиса изучал, не помогает в данном случае :(
Быстрый ответ:

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