Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

problemas con POO y capas

Estas en el tema de problemas con POO y capas en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estimados amigos del foro, soy pricipiante en programacion orientada a objetos y he tratado de llevar el modelo de capas de java a PHP y ...
  #1 (permalink)  
Antiguo 29/03/2006, 17:09
 
Fecha de Ingreso: octubre-2004
Mensajes: 13
Antigüedad: 19 años, 6 meses
Puntos: 0
problemas con POO y capas

Estimados amigos del foro, soy pricipiante en programacion orientada a objetos y he tratado de llevar el modelo de capas de java a PHP y me resulta con una conexion pconnect que no necesita de una funcion close(), pero ahora quiero inplementar el close y no puedo, les mando el codigo. espero me puedan decir que que etsa mal:

no estoy poniendo los tags de apertura y cierra de php para evitar errores en el envio de este mensaje...

Código PHP:

class Conexion{
var 
$host;
var 
$name;
var 
$user;
var 
$pass;
var 
$dbLink;

function 
Conexion($pName='XXXXXX'){
$this->host='XXXXXXX';
$this->user='XXXXXXX';
$this->pass='XXXXXXX';
$this->name=$pName;
$this->dbLink=@mysql_connect($this->host,$this->user,$this->pass);

if(!
$this->dbLink){
die(
'No se pudo conectar a la base de datos: '.mysql_error());
}
if(!
mysql_select_db($this->name,$this->dbLink)){
die(
'No se puedo conectar a la DB '.$this->name.': '.mysql_error());
}
}
function 
closeConexion(){
mysql_close($this->dbLink);
}

Código PHP:

require_once("Conexion.class.php");

class 
Query{
var 
$preResult;
var 
$result;
var 
$mensaje;

function 
Query($sql=""){
$conn = new Conexion();
$this->$preResult = @mysql_query($sql,$conn->dbLink);
$this->$result mysql_fetch_array($this->$preResultMYSQL_NUM);
$this->mensaje "";
if(!
$this->result){
$this->mensaje 'No se completo la operacion: '.$sql.' :'.mysql_error();
}
$conn::closeConexion();
}

Código PHP:

require_once("Query.class.php");

class 
HotelDAO{

function 
HotelDAO(){
}

function 
select($h){
$sql "select * from hotEuro";
if(
$h->codigo!=""){
$sql $sql." where codigo='".$h->codigo."'";
}
$resultado = new Query($sql);
return 
$resultado->result;
}

** ya existe la clase Hotel.class.php

Código PHP:

//en el php donde pinto los datos pongo....
require_once "clases/PaqueteEuropaDAO.class.php";
require_once 
"clases/PaqueteEuropa.class.php";
$paq = new PaqueteEuropa();
$paq->tipo $_GET['serie'];
$consul PaqueteEuropaDAO::select($paq);

print 
"<table>";
while(
$row=$consul){
print 
"<tr>";
for(
$y=1;$y<=2;$y++){
print 
"<td>".$row[0]."</td>";
print 
"<td>".$row[1]."</td>";
print 
"<td>".$row[2]."</td>";
}
print 
"</tr>";
}
print 
"</table>"
al parecer es un error de las clases porque no sale ningun error, solamente el browser se queda en blanco, no se pinta nada de html...

espero puedan ayudarme....
  #2 (permalink)  
Antiguo 30/03/2006, 11:22
 
Fecha de Ingreso: abril-2004
Ubicación: Rosario, Argentina
Mensajes: 124
Antigüedad: 20 años
Puntos: 11
Reemplazá esto
$conn
::closeConexion();

Por esto:
$conn->closeConexion();

La variable $conn está instanciada por lo que si accedés a un método de forma estática con el operador unario de alcance (::) no estás accediendo realmente a las variables del objeto.

Un saludo,
  #3 (permalink)  
Antiguo 30/03/2006, 13:31
 
Fecha de Ingreso: octubre-2004
Mensajes: 13
Antigüedad: 19 años, 6 meses
Puntos: 0
Estimado amigo, gracias por tu pronta respuesta..., realmente estaba mal esa linea, tenias mucha razon, ahora al parecer las clases estan bien... porque por lo menos ya sale el html, pero el problema esta en el while($row=$consul), al parecer no hay nada en $consul, ahora si hay datos porsiaca.. eso no es.., quizas estoy manejando mal el array que genera el mysql_fetch_array();

cuando usaba en pconnect pintaba los datos asi :
while($row=$mysql_fetch_row($consul)){ ... }

pero ahora que yo cierro la conexion en la misma clase DAO ya no puedo usar ninguna funcion mysql luego para pintarlo, verdad..????

que puede estar pasando..????

espero puedas ayudarme...
  #4 (permalink)  
Antiguo 30/03/2006, 14:07
 
Fecha de Ingreso: abril-2004
Ubicación: Rosario, Argentina
Mensajes: 124
Antigüedad: 20 años
Puntos: 11
Utilizá esta línea (no la otra):

while($row=$mysql_fetch_row($consul)){ ... }
  #5 (permalink)  
Antiguo 02/04/2006, 16:10
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
El signo de pesos ($) antes del mysql_fetch_row no deberia ir.
  #6 (permalink)  
Antiguo 03/04/2006, 12:36
 
Fecha de Ingreso: octubre-2004
Mensajes: 13
Antigüedad: 19 años, 6 meses
Puntos: 0
no sale.....

muchas gracias por sus respuestas, DarioDario y gnfrs, pero poniendo ese comando de mysql_fetch_row igual no sale nada de datos, insisto el html de todo el resto de la pagina si sale, es decir que el bucle del while no lee ningun dato, pregunta de teoria que quisiera saber: ¿si ya en la clase Query cerre la conexion antes de mandar el resultado para que lo reciba la clase DAO, creo yo que ya no se deberia de usar ninguna instruccion mysql, verdad o falso..??, porque la funcion mysql_fetch_array que uso en la clase Query genera un Array que nada tiene que ver con mysql, quizas estoy leyendo mal el array en el bucle.. deberia ser con un foreach ..???

que dice... lo voy a intentar.. pero de todas maneras quisiera una respuesta a la pregunta teorica para saber algo mas a fondo...

muchas gracias por su tiempo, a los dos....
  #7 (permalink)  
Antiguo 03/04/2006, 12:51
 
Fecha de Ingreso: octubre-2004
Mensajes: 13
Antigüedad: 19 años, 6 meses
Puntos: 0
tampoco ....

Saludos amigos... acabo de probar con foreach($consul as $row){} pero nada igual no lee ningun dato... quisiera saber si los datos en verdad estan alli..?? o nada como podria saber eso..???

gracias.....
  #8 (permalink)  
Antiguo 04/04/2006, 09:05
 
Fecha de Ingreso: abril-2004
Ubicación: Rosario, Argentina
Mensajes: 124
Antigüedad: 20 años
Puntos: 11
Con las funciones print_r o var_dump
  #9 (permalink)  
Antiguo 05/04/2006, 09:28
 
Fecha de Ingreso: octubre-2004
Mensajes: 13
Antigüedad: 19 años, 6 meses
Puntos: 0
nadaaaaaaaaaaaaa

Estimados amigos, al parecer no hay datos en la variable $consul..... entonces en que parte de las clases esta mal...??? porque no envia el array de datos a traves de las clases... espero puedan ayudarme... gracias por su tiempo...
  #10 (permalink)  
Antiguo 05/04/2006, 09:36
 
Fecha de Ingreso: abril-2004
Ubicación: Rosario, Argentina
Mensajes: 124
Antigüedad: 20 años
Puntos: 11
Poné en un ZIP todos los archivos implicados en tu problema y subilo así tratamos de verlo bien.

Un saludo,
  #11 (permalink)  
Antiguo 05/04/2006, 10:08
 
Fecha de Ingreso: octubre-2004
Mensajes: 13
Antigüedad: 19 años, 6 meses
Puntos: 0
ahi vaaa

ya esta, aqui les va los archivos..

www punto toursfestival punto com / archivos punto zip

perdon por ponerlo asi pero no me dejan poner enlaces...

espero me puedan ayudar..
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:07.