Проблем с CodeIgniter

Dizasterr

Registered
Здравейте! Пиша един скрипт, но сега имам един проблем. При този код:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  </head>
  
  <body>
    <div id="container">
    	<p>My view has been loaded</p>

		<?php foreach($rows as $r) : ?>
		
		<h1><?php echo $r->title; ?></h1>
		<div><?php echo $r->contents; ?></div>
                <div><?php echo $r->author; ?></div>
		
		<?php endforeach; ?>
    </div>
  </body>
</html>
И ми дава тази грешка:
Код:
My view has been loaded
A PHP Error was encountered

Severity: Warning

Message: Invalid argument supplied for foreach()

Filename: views/home.php

Line Number: 13
 
adrian каза:
Мисля, че си забравил result :)

foreach го направи така:

foreach($rows->result() as $r)
Вече го пробвах и нестава. Дава ми и грешка при единия модел. Ето я:
Код:
Fatal error: Call to undefined method Data_model::_assign_libraries() in D:\xampp\htdocs\codeigniter\system\libraries\Loader.php on line 185
Ето това е модела:
Код:
<?php

class Data_model extends Model {
	/*
	function getAll() {
		$q = $this->db->query("SELECT * FROM data");
		if($q->num_rows() > 0) {
			foreach($q->result() as $row) {
				$data[] = $row;
			}
			return $data;
		}
	}
	*/
	/*
	function getAll() {
		$q = $this->db->get('data');
		
		if($q->num_rows() > 0) {
			foreach ($q->result() as $row) {
				$data[] = $row;
			}
			return $data;
		}
	}
	*/
	
	/*
	function getAll() {
		$this->db->select('title, contents');
		$q = $this->db->get('data');

		if($q->num_rows() > 0) {
			foreach ($q->result() as $row) {
				$data[] = $row;
			}
			return $data;
		}		
	}
	*/
	/*
	function getAll() {
		$sql = "SELECT title, author, contents FROM data WHERE id = ? AND author = ?";
		$q = $this->db->query($sql, array(2, 'Jeffrey Way'));
		
		if($q->num_rows() > 0) {
			foreach ($q->result() as $row) {
				$data[] = $row;
			}
			return $data;
		}		
	}
	*/
	
	function getAll() {
		$this->db->select('title, contents');
		$this->db->from('data');
		$this->db->where('id', 1);
		
		$q = $this->db->get();
		
		if($q->num_rows() > 0) {
			foreach ($q->result() as $row) {
				$data[] = $row;
			}
			return $data;
		}		
		
	}
}
 
Предполагам зареждаш модела така:

$this->load->library("Data_model");

а трябва да го заредиш така:

$this->load->model("Data_model");


Също така провери дали моделът ти е в папка Models и дали се казва data_model.php ;)
 
adrian каза:
Предполагам зареждаш модела така:

$this->load->library("Data_model");

а трябва да го заредиш така:

$this->load->model("Data_model");


Също така провери дали моделът ти е в папка Models и дали се казва data_model.php ;)
Зареждам го по втория начин и всичко си е на мястото. Дори когато сложа файловете от урока ми дава грешката от първия коментар.
 
Код:
function getAll() 
{
	$data = array();
	$this->db->select('title, contents');
	$this->db->from('data');
	$this->db->where('id', 1);
	
	$q = $this->db->get();
	
	if($q->num_rows() > 0)
	{
		foreach($q->result() as $row)
		{
			$data[] = $row;
		}
	}
	return $data;
}

И после при foreach-а проверявай дали масива не е празен.

:)
 
FestarBG каза:
Код:
function getAll() 
{
	$data = array();
	$this->db->select('title, contents');
	$this->db->from('data');
	$this->db->where('id', 1);
	
	$q = $this->db->get();
	
	if($q->num_rows() > 0)
	{
		foreach($q->result() as $row)
		{
			$data[] = $row;
		}
	}
	return $data;
}

И после при foreach-а проверявай дали масива не е празен.

:)
Благодаря много. По този начин работи +1 :?:.
 

Back
Горе