Работа с моделью MVC (помощь новичку)
Доброго времени суток. Возникла проблема при обращении и дальнейшем выводе данных из БД на сайт. (изучаю видео уроки от K0stix)
Не получается вывести результат в views (массив возвращается пустой). При этом БД создана и вспомогательные функции не выдают ошибок при обращении к БД. Где может быть ошибка? views:
<?php
require_once "../controllers/c_visit_card_content.php"; //Подключение файла - контроллера
$temp = new C_visit_card_content();
$visit_card_content=$temp -> print_visit_card_content;
$temp -> k_debug($visit_card_content);
?>
controllers (файл ../controllers/c_visit_card_content.php):
<?php
require_once "../models/m_visit_card_content.php";
class C_visit_card_content extends M_visit_card_content {
function print_visit_card_content () {
$res = $this -> return_visit_card_content; //Возврат ссылки на таблицу базы данных
$res=mysql_fetch_array($res); //Здесь находится массив
return $res; //Возврат массива
}
}
?>
модель (../models/m_visit_card_content.php)
<?php
require_once "../config/db.php";
class M_visit_card_content extends Db {
function return_visit_card_content() {
$sql = "select *from visit_card_content";
$res = $this -> sql($sql);
return $res;
}
}
?>
Вспомогательные функции (Они 99 % рабочие должны быть, взяты с урока) Файл db.php
<?php
require_once "config.php"; //Подключение класса config
class db extends config { //Наследование класса config
private $connection;
function __constructor(){
$this ->open_connection();
}
private function open_connection(){
$this -> connection=mysql_connect($this -> DB_HOST,$this -> DB_USER, $this ->DB_PASS);
if (!$this -> connection){
die("Соединение с базой данных не выполненно: ".mysql_error());
}
else {
$db_select=mysql_select_db($this -> DB_NAME);
if (!$db_select) {
die ("База данных не найдена: ".mysql_error());
}
}
mysql_query("set names utf8") or die("utf8 не поддерживатеся");
}
function sql($query) {
$resault = mysql_query($query, $this -> connection);
if (!$resault) {
die("Заявка не выполнена: ".mysql_error());
}
return $resault;
}
}
$db = new db();
?>
файл config.php
<?php
require_once "debug.php";
class config extends Debug{
var $BASE_URL = "";//Базовое имя URL
var $DB_HOST = "localhost"; //имя хоста
var $DB_USER = "root";
var $DB_PASS = "";
var $DB_NAME = "rndGNSSgroup";
}
?>
файл debug.php
[PHP]
<?php
class Debug {
function k_debug($aux) {
echo "<pre>";
print_r ($aux);
echo "</pre>";
}
}
?>
|
Цитата:
берете норм книжку и изучаете пыхапе, видеоуроки редко бывают хорошими. |
Цитата:
|
Цитата:
echo "<pre>"; print_r($res); echo "</pre>"; Кстати, вьюхой это с диким натягом является, по хорошему весь этот код в контроллере должен сидеть
<?php
require_once "../controllers/c_visit_card_content.php"; //Подключение файла - контроллера
$temp = new C_visit_card_content();
$visit_card_content=$temp -> print_visit_card_content;
$temp -> k_debug($visit_card_content);
?>
|
Спасибо что откликнулись. Ну про автора это не реклама, просто в качесвте доп. информации. Да, дело было в скобках.
Возникла еще одна проблема. Браузер выдает ошибку. Warning: mysql_query() expects parameter 2 to be resource, null given in Z:\home\rnd3.local\www\config\db.php on line 38 Заявка не выполнена: Тут понятно, второй параметр выдается пустым. Сделал следующую проверку (Условия Null 1 и Null 2):
<?php
require_once "config.php"; //Подключение класса config
class Db extends Config { //Наследование класса config
private $connection;
function __constructor(){
$this ->open_connection();
}
private function open_connection(){
$this -> DB_HOST;
$this -> connection=mysql_connect($this -> DB_HOST, $this -> DB_USER, $this ->DB_PASS);
if (is_null($this ->connection)){
echo "NULL_1";
}
if (!$this -> connection){
die("Соединение с базой данных не выполненно: ".mysql_error());
}
else {
$db_select=mysql_select_db($this -> DB_NAME);
if (!$db_select) {
die ("База данных не найдена: ".mysql_error());
}
}
mysql_query("set names utf8") or die("utf8 не поддерживатеся");
}
function sql($query) {
if (is_null($this ->connection)){
echo "NULL_2";
}
$resault = mysql_query($query, $this -> connection);
if (!$resault) {
die("Заявка не выполнена: ".mysql_error());
}
return $resault;
}
}
$db = new Db();
?>
Браузер выдал: NULL_2 Warning: mysql_query() expects parameter 2 to be resource, null given in Z:\home\rnd3.local\www\config\db.php on line 38 Заявка не выполнена: Т.е. в приватной функции open_connection переменная $this -> connection еще не равна null (проверка null 1 не выполняется). Но в дальнейшем отрабатывании функции sql, переменная $this -> connection становиться равной null (выполняется проверка null 2). Пробывал изменять настройки приватности (делал все public), результат тот же. В чем проблема если $this -> connection в дальнейшем нигде не переприсваивается? Фугкция sql вызыватся из модуля models, код которого приведен в начале темы с входным параметром запроса считывания БД. |
Цитата:
|
Цитата:
|
Цитата:
её можно удалить |
| Часовой пояс GMT +3, время: 01:15. |