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

Como llamar a una funcion dos veces en una misma pagina

Estas en el tema de Como llamar a una funcion dos veces en una misma pagina en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Tengo una clase (DataGrid), la misma, que tengo necesidad de llamarla dos o mas veces veces en la misma pagina, pero me sale este error: ...
  #1 (permalink)  
Antiguo 14/04/2008, 07:28
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 22 años
Puntos: 0
Como llamar a una funcion dos veces en una misma pagina

Tengo una clase (DataGrid), la misma, que tengo necesidad de llamarla dos o mas veces veces en la misma pagina, pero me sale este error:

Fatal error: Cannot redeclare listadogrid() (previously declared in F:\Apache\v2\erp\Controles\DataG\GridFunciones.php :5) in F:\Apache\v2\erp\Controles\DataG\GridFunciones.php on line 21

Alguien podria darme alguna idea para no ver este conflicto?

Observacion: Si creo el objeto una vez funciona.
Gracias
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #2 (permalink)  
Antiguo 14/04/2008, 07:37
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: Como llamar a una funcion dos veces en una misma pagina

Claro, no puedes incluir una clase dos veces. POr eso PHP te está diciendo que no la redeclares.

Pero igualmente no tiene sentido.
EN vez de incluir la clase dos veces, inicia dos objetos así

$objeto1 = new DataGrid;
$objeto2 = new DataGrid;

Y ya tienes dos objetos que cuentas con todas las funciones de la clase y con variables independientes.
Esa es la ventaja de trabajar con POO (programación orientada a objetos).-

SAludos
  #3 (permalink)  
Antiguo 14/04/2008, 07:39
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: Como llamar a una funcion dos veces en una misma pagina

Ahh ademas estuve viendo el error y no es de la reclaración de una clase, sino más bien de una funcíón.

Tampoco hace falta incluir una funcion dos veces (no se puede)... para qué necesitas eso, si lo explicas podremos exlicarte cuál es la forma correcta de hacerlo.

Saludos
  #4 (permalink)  
Antiguo 14/04/2008, 08:03
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 22 años
Puntos: 0
Re: Como llamar a una funcion dos veces en una misma pagina

Tienes razon USERMAX, creando dos objetos se soluciona el problema:

$objeto1 = new DataGrid;
$objeto2 = new DataGrid;

Sin embargo surge otro: Esta clase por ser un data grid, hace una consulta a una DB, por lo cual como parametro envio el SQL, sin embargo cuando creo dos objetos dentro de una misma pagina se confunden las variables y al final me salen dos grid con la misma consulta.

Se requiere mostrar en una sola pagina dos GRID con consultas a diferentes tablas.

Nota: cuando creo los objetos envio los parametro SQL particulares
$obj1 = new DataGrid();
$obj1->DataView($Sql1);

$obj2 = new DataGrid();
$obj2->DataView($Sql2);

Espero puedan darme alguna idea.
Gracias
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #5 (permalink)  
Antiguo 16/04/2008, 17:23
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 22 años
Puntos: 0
Re: Como llamar a una funcion dos veces en una misma pagina

alguien q me de alguna pista?
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #6 (permalink)  
Antiguo 17/04/2008, 01:14
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: Como llamar a una funcion dos veces en una misma pagina

Y si eliminas el objeto, ya sea mediante alguna propiedad o "$objeto = null", y lo vuelves a crear?
  #7 (permalink)  
Antiguo 17/04/2008, 15:33
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 22 años
Puntos: 0
Re: Como llamar a una funcion dos veces en una misma pagina

No puedo hacer eso, ya que deseo que los dos grid se muestren en simultaneo, pero ingresando a diferentes tablas. En otras palabras reutilizando la clase GRID.

El problema consiste en que la variable $SQL de un objeto se convina con la misma variable del otro objeto y al final tengo dos grid que accden a la misma tabla.
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #8 (permalink)  
Antiguo 17/04/2008, 15:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Como llamar a una funcion dos veces en una misma pagina

Hola kotosh,

El problema es de tu clase DataGrid, ya que si esta mezclando los valores, entonces no esta encapsulada.

Contacta al autor de la clase y que verifique como está programada.

Saludos.

Tema trasladado a PHP Orientado a Objetos.
  #9 (permalink)  
Antiguo 17/04/2008, 21:54
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 22 años
Puntos: 0
Esta es mi clase.

Yo soy el autor de dicha clase, pero soy novato en esto...ya que estoy acostumbrado a la programación estructurada, pero gracias por el dato...tendre que aprender como "encapsular" mis variables en PHP.

Mi clase en sitesis tiene esto:

class Grid{
function DataGrid($Sql, $DemasParametros){
//todo el cofigo para que funcione mi clase...
// (reordenamiento de columnas, paginador, ancho y altura, buscador,etc)
}
}

//------- Pagina.php--------------
//Creo mi objeto 1:
$obj3 = new Grid();
$obj3->DataGrid($Sql,$DemasParametros);

//Creo mi objeto 2:
$obj4 = new Grid();
$obj4->DataGrid($Sql,$DemasParametros);

Soy enemigo de los que esperan recibir todo servido, por lo cual me dedicare a investigar mas sobre POO, sin embargo si por alli alguien me da una mano, lo agradecere mucho, ya que estoy contra el tiempo. Gracias.
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #10 (permalink)  
Antiguo 18/04/2008, 08:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Como llamar a una funcion dos veces en una misma pagina

Sin saber la estructura de tu clase, es un poco complicado que te pueda asesorar en como podrías buscar ese encapsulamiento.

Saludos.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:39.