Code Igniter

Статус
В этой теме нельзя размещать новые ответы.

[Macintosh]

Профессор
Регистрация
8 Дек 2008
Сообщения
208
Реакции
39
Друзья такая проблема, начал изучать php и фреемворк Code Igniter

В директории controllers
создал файл clients.php
PHP:
<?php
class Clients extends Controller {
	
	function Clients()
	{
		parent::Controller();		
		$this->load->database();
		$clients = $this->db->query('SELECT `id`,`email`,`description` FROM `clients` WHERE 1 LIMIT 0 , 30');
		$this->load->library('parser');
		$data_template = array ('title' => 'Клиенты','heading' => 'Клиенты компании', 'content' => $clients->result_array());
		$this->parser->parse('clients',$data_template);
		
		
	}
	
	function index()
	{
		$this->load->view('clients');
	}
}
?>

В директории view файл шаблона clients.php

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{title}</title>
</head>
<body>
<p>
<h1>{heading}</h1>
<table width="400" border="0" cellpadding="0" cellspacing="0" style="border:1px #9999FF">
<tr style="border:1px #9999FF">
<td bgcolor="#CCCCFF" style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">ID</td>
<td bgcolor="#CCCCFF" style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">E-Mail</td>
<td bgcolor="#CCCCFF" style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">Описание</td>
</tr>
<tr style="border:1px #9999FF">
<td style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">$clients['id']</td>
<td style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">$clients['email']</td>
<td style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">$clients['descriptions']</td>
</tr>
</table>
</p>
</body>
</html>

В итоге что получается у меня:

526b5616e94b.png


Как мне правильно собрать из запроса бд в массим?, не могу понять почему не идут функции mysql_num_rows(),mysql_affected_rows()
и как правильно отобразить все в шаблоне?

P.S. 2 часа мучался. но так и не понял!
Просьба: Ногами не пинать, в гугл не посылать, просто прошу объясните на родном языке что не так делаю и где я тупанул :)
 
ну во-первых ты $clients во вью не запихал в {}.
Parse я вообще ни разу не юзал в ки, а смысл?)
во-вторых во вью наверное лучше сделать это форичем, т.е. передать в него чистый $clients, а внутри уже сделать:
foreach ($clients->result_array() as $client)
{
echo $client['id'];
echo $client['email'];
echo $client['description'];
} (посмотри там синтаксис parse, я не помню как на нем.

не могу понять почему не идут функции mysql_num_rows(),mysql_affected_rows()
Используй сразу функции для ci - $clients->num_rows().
Вообще конечно читай Для просмотра ссылки Войди или Зарегистрируйся получше :)

UPD:
вот сейчас прочитал еще мануал по парсеру, попробуй вот так:
PHP:
$data_template = array (
    'title' => 'Клиенты',
    'heading' => 'Клиенты компании', 
    'clients' => $clients->result_array());

а во вью в свою очередь:
PHP:
<table width="400" border="0" cellpadding="0" cellspacing="0" style="border:1px #9999FF">
<tr style="border:1px #9999FF">
<td bgcolor="#CCCCFF" style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">ID</td>
<td bgcolor="#CCCCFF" style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">E-Mail</td>
<td bgcolor="#CCCCFF" style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">Описание</td>
</tr>
{clients}
<tr style="border:1px #9999FF">
<td style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">{id}</td>
<td style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">{email}</td>
<td style="text-align:center; font-family: Georgia, "Times New Roman", Times, serif;">{descriptions}</td>
</tr>
{/clients}
</table>


Так же у тебя как-то странно контроллер сделан. Зачем в конструктор пихать все функции, которые ты должен по идее в index() поставить? в конструкторе только библиотеки подгружай.
И используй active records вместо чистого сикуэля.
 
Сами понимаете что такое говнокодить ) особенно когда только начинаеш ) а сейчас обязательно прочту про active records.
Кстати. вот тут я точно также подставлял $clients->result_array()); но почему то ошибочку выдало. Хотя незнаю. сейчас буду проверять )

И всетаки html генерируется и сначало в браузере он а после этого результаты. не могу понять как с этим бороться.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху