Wysyłanie danych z 'mysql_fetch_row' do kontrolera i obróbka w widoku.

0

Załóżmy że tworzę sobie wyświetlanie newsów na stronie[bo tak jest ;)] i jestem na etapie przeróbki wtyczki ze zwykłego modelu na mvc. I zatrzymałem się na 'wybieraniu' danych z tabeli w bazie. Wybranie ich jednorazowo nie stanowi dla mnie problemu, ale co wtedy gdy:

/*Wybieram wcześniej pola z bazy a później używam pętli*/
while ($wiersz = mysql_fetch_row($idzapytania)) 
{
echo'
<h1>'.$wiersz[1].;</h1>
<p>'.$wiersz[1].'</p>
<data>'.$wiersz[1].'</data>';
}

Zaczyna mi się problem, ponieważ powinienem np. zrobić w modelu funkcję w stylu getNextRow, która wywoła mysql_fetch_row
i zwróci wynik, wtedy w kontrolerze przekazałbym takie coś do widoku gdzie w pętli już bym załatwił sprawę np tak.

function render()
{
  $output = '';
  while ($wiersz = $this->model->getNextRow() )
  {
      $output .= '<p>'.$wiersz[1].;</h1>
<p>'.$wiersz[1].'</p>
<data>'.$wiersz[1].'</data>'</p>';
  }
  return $output;
}

Problem jednak polega na tym ze nie wiem jak zrobić taką funkcję, która wywoła mi mysql_fetch_row. Nie mogę sobie tego wyobrazić.
Myślałem jeszcze by całe mysql_fetch_row($idzapytania) przechować w zmiennej, zwrócic do kontrolera i w widoku obrobić,
dobrze myśle?

0
class Model
{

	private $mysql;

	public function __construct($host,$user,$password,$db)
	{
		$this->mysql = new mysqli($host,$user,$password,$db);
	}
	
	private function getRows($rows)
	{
		while($row = $rows->fetch_assoc()){
			$result[] = $row;
		}
	
		return $result;
	}
	
	private function query($query)
	{
		return $this->mysql->query($query);
	}
	
	public function getNews()
	{
		$news = $this->query('SELECT * FROM news');
		return $this->getRows($news);
	}

}

Można coś takiego zrobić.

potem

$model = new Model('localhost','login','supertajnehaslo','mojabazadanych');
$news = $model->getNews();

i cos w rodzaju:
$this->load_view('widoczek',$news);

najlepiej było by napisać osobną klasę do obsługi bazy i klasę model w której korzystało by się z obiektu do połączenia z bazą i każdy model dziedziczyłby z modelu głównego:

class NewsModel extends Model
{
	
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1