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

[SOLUCIONADO] .AAyuda. para para recibir / retornar id

Estas en el tema de .AAyuda. para para recibir / retornar id en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos estoy utilizando la logica de Data Objects de PHP OO de los capitulos 40 al 43, bien primero creo un listado (HOME.PHP), ...
  #1 (permalink)  
Antiguo 01/08/2013, 12:53
 
Fecha de Ingreso: noviembre-2011
Mensajes: 69
Antigüedad: 13 años
Puntos: 0
Exclamación .AAyuda. para para recibir / retornar id

Hola a todos estoy utilizando la logica de Data Objects de PHP OO de los capitulos 40 al 43, bien primero creo un listado (HOME.PHP), hasta ahi todo bien, luego por medio de ese listado haciendo click en un establecimiento me dirige a ver el detalle de un registro en particular (detalle_est.php?nro_establecimiento=xxx), estas es mi clase:


Código PHP:
<?php
class Trabajo 
{    
    private 
$p;
    private 
$dbh;
    
    public function 
__construct()
    {
        
$this->p=array();
        
$this->dbh= new PDO('mysql:host=localhost;dbname=turismo'"root""");
    }
    
    private function 
set_names()
    {
        return 
$this->dbh->query("SET NAMES 'utf8'");
    }
    
    public function 
get_establecimiento()
    {
        
self::set_names();
        
$sql="SELECT *, departamentos.nombre, localidades.nombre as loc
                FROM establecimiento, departamentos, localidades
                WHERE establecimiento.id_departamento = departamentos.id AND establecimiento.id_localidad = localidades.id "
;
        foreach (
$this->dbh->query($sql) as $row)
        {
            
$this->p[]=$row;
        }
            return 
$this->p;
            
$this->dbh=null;
    }
    
    
    public function 
get_establecimiento_id()
    {
        
self::set_names();
        
$sql="SELECT *, departamentos.nombre, localidades.nombre as loc
                FROM establecimiento, departamentos, localidades
                WHERE establecimiento.id_departamento = departamentos.id AND establecimiento.id_localidad = localidades.id
                AND establecimiento.nro_establecimiento= ? ;"
;
        
$stmt=$this->dbh->prepare($sql);
        if (
$stmt->execute( array($_GET["nro_establecimiento"]) ))
        {
            while (
$row $stmt->fetch())
            {
                
$this->p[]=$row;
            }
            return 
$this->p;
            
$this->dbh=null;
        }
        
    }

    
    
/* ES ACA EN DONDE QUIERO VOLVER A RECUPERAR EL nro_establecimiento PARA PASARLO EL header */
    
public function eliminar_evento(){
        
$sql="DELETE FROM facilidad_evento where id_facilidad=?";
        
$stmt=$this->dbh->prepare($sql);
        
$stmt->bindParam(1,$cod);        
        
$cod=$_GET["id_facilidad"];
        
$stmt->execute();            
        
header("Location: ../../detalle_est.php?nro_establecimiento=38?m=1");
    }




?>
Es decir pasa por la URL el nro_establecimiento y a partir de ahi me cargan varias tablas de ese establecimiento, pero lo que no puedo hacer es cuando elimino un registro de unas de las tablas del detalle me redirija nuevamente a (detalle_est.php?nro_establecimiento) alguna idea????
  #2 (permalink)  
Antiguo 01/08/2013, 19:36
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: .AAyuda. para para recibir / retornar id

Lo único que tienes que hacer es recuperar con $_GET la variable nro_establecimiento que ha sido enviada por el location. y volver a hacer la dirección con ese valor.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 02/08/2013, 19:34
 
Fecha de Ingreso: noviembre-2011
Mensajes: 69
Antigüedad: 13 años
Puntos: 0
Respuesta: .AAyuda. para para recibir / retornar id

Mmm no es asi nada mas, ya que ese nro_establecimiento pertenece a otra tabla..... No se me ocurre como hacerlo.....
  #4 (permalink)  
Antiguo 02/08/2013, 21:32
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: .AAyuda. para para recibir / retornar id

Cita:
Iniciado por maczy Ver Mensaje
Mmm no es asi nada mas, ya que ese nro_establecimiento pertenece a otra tabla..... No se me ocurre como hacerlo.....
Tu clase tiene un método get_establecimiento_id() creo que por hay puedes comenzar.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 02/08/2013, 22:26
 
Fecha de Ingreso: noviembre-2011
Mensajes: 69
Antigüedad: 13 años
Puntos: 0
Respuesta: .AAyuda. para para recibir / retornar id

Si es correcto y a ese metodo lo utilizo para recuperar el id y lo paso a

http://localhost/SistemaGestionHotel/detalle_est.php?nro_establecimiento=36

de esa manera me carga todas las tablas referidas al establecimiento 36 por ejemplo, pero es a partir de aca donde justamente a determinada tabla le doy eliminar llamando al metodo:

eliminar_evento() pero este solo recibe el id_evento se entiende? no puede o no se como enviar el valor del establecimiento.
  #6 (permalink)  
Antiguo 05/08/2013, 13:09
 
Fecha de Ingreso: noviembre-2011
Mensajes: 69
Antigüedad: 13 años
Puntos: 0
Respuesta: .AAyuda. para para recibir / retornar id

Para hacerlo, al hacer click mando los dos valores

Cita:
<a href="javascript:void(0);" title="Eliminar datos de <?php echo $d2["cod_access"];?>" onclick="eliminar_accesibilidad('classes/delete/eliminar_accesibilidad.php?cod_access=<?php echo $d2["cod_access"];?>&nro_establecimiento=<?php echo $d2["nro_establecimiento"];?>') ">
luego los recibo:

Cita:
<?php
require_once("../clases_eliminar.php");
$elim2 = new Eliminar();
$datos2 = $elim2->eliminar_accesibilidad();

?>
y finalmente los procesos desde la clase:

Cita:
public function eliminar_accesibilidad(){
$sql="DELETE FROM accesibilidad where cod_access=?";
$stmt=$this->dbh->prepare($sql);
$stmt->bindParam(1,$cod);
//$stmt->bindParam(2,$a);
$cod=$_GET["cod_access"];
$a=$_GET["nro_establecimiento"];
$stmt->execute();
//print_r($a);
header("Location: ../../detalle_est.php?nro_establecimiento=".$a."&m=2");
}

Etiquetas: header, recibir, retornar
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 06:43.