Mi estructura es tal que Carpeta proyecto y dentro de ella van los php de las paginas a mostrar y las una carpeta llamada php, que contiene otras 3 con Vistas, Clases y Controladores tal que:
Proyecto:
-index.php
-marcas.php....
-php:
........ -Clases
........ -Vistas
........ -Controladores
Mi problema es que primero nose si sera correcto montarlo asi... y a parte de esto, estoy obteniendo un error que no me permite continuar.. y dado que acabo de empezar creo que es el momento de enfocar el desarrollo correctamente , asi que os adjunto mi codigo y el error , para que evalueis si es una manera correcta de hacerlo y me orienteis.
Problema: estoy intentando mostrar una pagina , marcas.php en la que llamo al controlador C_ListarMarcas.php cuyo contenido seria:
Código:
No se si es correcto llamarlo asi...<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Tienda</title> <link rel="stylesheet" type="text/css" href="css/styleMarcas.css" /> </head> <body> <div id="Main"> <div id="Header"> <div id="Header1"> <h1 class="tittle">Titulo1</h1> <h2 class="tittle">Titulo2</h2> <div id="Separador"></div> </div> </div> <div id="MainContainer"> <div id="Content"> <div id="Brands"> <ul id="ulBrands" class="liEnlaces"> <?php require("php/Controladores/C_ListarMarcas.php"); ?> </ul> </div>
El contenido del controlador es:
Código:
Lo que supuestamente hace es llamar a una clase que dispone de una funcion llamada ListaMarcas, nos devuelve un array asociativo con las marcas.Este seria su codigo:<?php require("php/Clases/GestionMarcas.php"); $GM=new GestionMarcas(); $marcas=$GM->ListarMarcas(); require("php/Vistas/V_ListarMarcas.php"); ?>
Código:
Esta es la vista:<?php class GestionMarcas{ require("php/Clases/mysql.php"); $MySQL=new MySQL(); public function ListarMarcas(){ //Listaremos todas las marcas order by Nombre Marca. return $MySQL->sp("S_Marcas","",""); } }?>
Código:
Para ello se sirve de una pequeña clase de MySQL en la cual se encarga de llamar a un sp para obtener dichas marcas.Aqui os dejo el codigo:<?php while($row = mysql_fetch_array($marcas)) { ?> <li><a href="Colecciones.php?id="<?php echo $row ['idMarcas']; ?> alt""><?php echo $row ['Nombre']; ?></a></li> <?php }?>
Código:
Y por ultimo os anexo el error que recibo al intentar entrar en marcas.php:<?php class MySQL{ private $conexion; private $total_consultas; public function MySQL(){ if(!isset($this->conexion)){ $this->conexion = (mysql_connect("localhost","admin","12345")) or die(mysql_error()); mysql_select_db("proyecto",$this->conexion) or die(mysql_error()); } } public function consulta($consulta){ $this->total_consultas++; $resultado = mysql_query($consulta,$this->conexion); if(!$resultado){ echo 'MySQL Error: ' . mysql_error(); exit; } return $resultado; } public function sp($nombre,$parametrosIn,$parametrosOut){ return $this->consulta('CALL '.$nombre.'('.$parametrosOut.','.$parametrosIn.')'); } public function fetch_array($consulta){ return mysql_fetch_array($consulta); } public function num_rows($consulta){ return mysql_num_rows($consulta); } public function getTotalConsultas(){ return $this->total_consultas; } }?>
( ! ) Parse error: syntax error, unexpected T_REQUIRE, expecting T_FUNCTION in
C:\wamp\www\proyecto\php\Clases\GestionMarcas.php on line 3
Call Stack
# Time Memory Function Location
1 0.0121 670912 {main}( ) ..\Colecciones.php:0
2 0.0127 674848 require( 'C:\wamp\www\proyecto\php\Controladores\C_ListarMa rcas.php' ) ..\Colecciones.php:24
Gracias por todo ;)