Оформить вывод информации из MySQL в нужном мне виде ( PHP, CodeIgniter )

Евгений Иванов
На сайте с 26.07.2006
Offline
272
1663

На данный момент вывод есть только для полного вывода категорий ( Выводит все категории ).

Код который есть представлен ниже.

Задача - сделать вывод категорий и доменов которые относяться к категориям, доменов вне категорий - быть не может.

Каждый домен имеет свою категорию, и мне нужно сделать следующий вывод информации:

Категория 1
--Домен 1

Категория 2
--Домен 2

Категория 3
--Домен 3

Название категории
--Домен который относиться к этой категории

Если предоставил не весь код, прошу простить, скажите чего не хватает - вышлю :)


<?php if (isset($categories)): ?>
<?php foreach ($categories as $item):?>
<?=$item['id']?></td>
<a href="<?php echo $base?>index.php/<?php echo $item['id']?>"><?php echo $item['name']?></a> -
<a href="<?php echo $base?>index.php/<?php echo $item['id']?>">[e]</a>
<a href="<?php echo $base?>index.php/<?php echo $item['id']?>">[d]</a>
</hr>
<? endforeach ?>
<? endif ?>

База данных

CREATE TABLE `b_domains` (

`id` int(11) unsigned NOT NULL auto_increment,
`c_id` int(11) unsigned NOT NULL,
`name` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

INSERT INTO `b_domains` VALUES(1, 1, 'domen 1');
INSERT INTO `b_domains` VALUES(2, 1, 'domen 2');
INSERT INTO `b_domains` VALUES(3, 2, 'domen 3');


CREATE TABLE `b_categories` (
`id` int(11) unsigned NOT NULL auto_increment,
`name` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

INSERT INTO `b_categories` VALUES(1, 'Категория 1');
INSERT INTO `b_categories` VALUES(2, 'Категория 2');
INSERT INTO `b_categories` VALUES(3, 'Категория 3');

Контролер

	function view ($id)

{
//Получаем данные для списка категорий
$data = $this->_prepare_sidebar();
//Проверяем, нужно ли показать сообщение об ошибке
$err_id = $this->uri->segment(4);
if ($err_id == 'e')
{
$data['text_main'] = "Ошибка: введено некорректное имя домена или такой домен уже существует.";
}
if ($id == 'e')
{
//Если показать инфу об ошибке необходимо, собираем данные в массив
$data['text_main'] = 'Категории';
$data['error'] = 'Ошибка: введено некорректное имя или такой объект уже существует.';
$data['domains'] = $this->Mdl_categories->_get_domains($id);
$data['db_query'] = $this->db_query;
}
else
{
if (! isset($id) or $id == 0)
{
//Если id категорий не установлен, то показывает "корень"
$data['text_main'] = 'Категории';
}
else
{
if (! isset($data['text_main']))
{
//Если не нужно показывать особый текст (например, текст ошибки), то показываем id
$data['text_main'] = "#{$id}";
}
$data['c_id'] = $id;
//Увеличиваем счетчик запросов
$this->db_query += 1;
//Получаем имя категории из базы
$row = $this->Mdl_categories->get_result('categories', 'id', $id, 10000);
$data['category_name'] = $row->name;
}
//Собираем данные в массив
$data['error'] = $this->error;
$data['domains'] = $this->Mdl_categories->_get_domains($id);
$data['db_query'] = $this->db_query;
}
//Вывод информации
$this->load->view('header', $data); //Хедер
$this->load->view('categories/main', $data); //Главная часть страницы
$this->load->view('footer', $data); //Футер
}

/**
* _prepare_sidebar();
*
* Метод, подготавливающий данные к выводу в шаблон списка доступных
* категорий
* @return $data[]
**/
function _prepare_sidebar ()
{
//Собираем данные в массив
$data['title'] = 'Управление категориями';
$data['text'] = '';
$data['text_side_bar'] = 'Список категорий';
$data['base'] = $this->config->item('base_url');
$data['css'] = $this->config->item('css');
//Список категорий
$query = $this->Mdl_categories->catlist();
//Увеличиваем счетчик запросов
$this->db_query += 1;
//Собираем в массив все существующие категории
if ($query->num_rows() > 0)
{
foreach ($query->result_array() as $row)
{
$data['categories'][] = $row;
}
}
return $data;
}

Модель

	/** Список категорий */

function catlist()
{
$this->db->from('categories');
$this->db->orderby("name", "asc");
$query = $this->db->get();

return $query;
}

С вашей ценой и предложением прошу обращаться строго в ICQ 203-603

Wap.Click / Вап.Клик / Я - рядом!
Dreammaker
На сайте с 20.04.2006
Offline
569
#1

Что-то Евгения Юрьевича нету в асе :) Хотел бартер предложить...

Евгений Иванов
На сайте с 26.07.2006
Offline
272
#2

Dreammaker, ой,так сегодня SNYP 2009 )))) Тока пришел домой,правда в любом случаи уже поздно, не успел отписаться но уже все сделали и нашел программера на постоянку :)

[Удален]
#3
думаю:
Dreammaker, ой,так сегодня SNYP 2009 )))) Тока пришел домой,правда в любом случаи уже поздно, не успел отписаться но уже все сделали и нашел программера на постоянку :)

Чтото ты без ошибок пишешь) Пьянка не удалась чтоли) Или ты нанял себе писаря?)))

Заходи, продолжим, покурим)

Евгений Иванов
На сайте с 26.07.2006
Offline
272
#4
Leonid.Sh:
Чтото ты без ошибок пишешь) Пьянка не удалась чтоли) Или ты нанял себе писаря?)))
Заходи, продолжим, покурим)

Нанял писаря =))))) не, сорри,не сегодня ) ща спать ))

Dreammaker
На сайте с 20.04.2006
Offline
569
#5
думаю:
ой,так сегодня SNYP 2009 ))))

Я так и в конце концов и подумал, даты точно не знал, но помню, что в этих числах.. А искать лень было... :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий