Estou estudando PHP, mas estou tendo um problema que não consigo solucionar de maneira nenhuma. Já fiz buscas e não achei nada que explicasse o meu caso especifico.
O meu teste é composto de 6 arquivos:
'index.php': página web em si
'connection.php': faz a conexão com o banco de dados
'usermodel.class.php': classe modelo, apenas com as propriedades
'usercontroller.class.php': faz a consulta no banco de dados e retorna um array de UserModel
'userview.class.php': transforma o array[] em uma resposta para ser exibida no index.php
'users.php': faz o require_once dos 4 arquivos acima
connection.php
<?php
# Configuration Lines (you can change these lines)
$server = 'localhost';
$database = 'oo';
$username = 'root';
$password = 'senha';
# Establishing the Connection (don't change nothing after this line)
$link = mysql_connect($server, $username, $password) or die("Failed to connect to the server " . $server);
$dbselect = mysql_select_db($database, $link) or die ("Unkown database " . $database);
?>
O problema que ocorre é o seguinte, quando abro a página 'localhost/index.php', ele só exibe os elementos html e apenas até onde botei a função $view->getArray(). Segue o código fonte depois de executada a página:
Pergunta
LucasFerreira_
Estou estudando PHP, mas estou tendo um problema que não consigo solucionar de maneira nenhuma. Já fiz buscas e não achei nada que explicasse o meu caso especifico.
O meu teste é composto de 6 arquivos:
Segue abaixo o código de cada um dos arquivos
connection.php <?php # Configuration Lines (you can change these lines) $server = 'localhost'; $database = 'oo'; $username = 'root'; $password = 'senha'; # Establishing the Connection (don't change nothing after this line) $link = mysql_connect($server, $username, $password) or die("Failed to connect to the server " . $server); $dbselect = mysql_select_db($database, $link) or die ("Unkown database " . $database); ?>usermodel.class.php <?php class UserModel { # Data Fields private $id; private $username; private $email; private $password; # Constructor function __construct($id, $username, $email, $password) { $this->id = $id; $this->username = $username; $this->email = $email; $this->password = $password; } # Properties function __set($name, $value) { $this->$name = $value; } function __get($name) { return $this->$name; } } ?>usercontroller.class.php <?php class UserController { # Data Fields private $model; private $array; # Constructor function __construct() { $this->model = new UserModel; } # Methods function getArray() { global $model, $array; $query = "SELECT id, username, email, password FROM Users"; $result = mysql_query($query); while ($row = mysql_fetch_array($result)) { $model->id = $row['id']; $model->username = $row['username']; $model->email = $row['email']; $model->password = $row['password']; $array[] = $model; } return $array; } } ?>userview.class.php <?php class UserView { # Data Fields private $controller; # Constructor function __construct() { $this->controller = new UserController; } # Methods function getArray() { global $controller; $array = $controller->getArray(); echo $array[0]->username; } } ?>users.php <?php define('DS', DIRECTORY_SEPARATOR); define('ROOT', dirname(dirname(dirname(__FILE__)))); require_once ROOT . DS . 'database' . DS . 'connection.php'; require_once ROOT . DS . 'application' . DS . 'models' . DS . 'usermodel.class.php'; require_once ROOT . DS . 'application' . DS . 'controllers' . DS . 'usercontroller.class.php'; require_once ROOT . DS . 'application' . DS . 'views' . DS . 'userview.class.php'; ?>O problema que ocorre é o seguinte, quando abro a página 'localhost/index.php', ele só exibe os elementos html e apenas até onde botei a função $view->getArray(). Segue o código fonte depois de executada a página:É a primeira vez que trabalho com orientação a objetos com PHP, então é provável que seja um erro besta e talvez comum, agradeço a ajuda de vocês.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.