Foros del Web » Programación web » PHP »

Abrir PDF desde MySQL

Estas en el tema de Abrir PDF desde MySQL en el foro de PHP en Foros del Web. HOLA A TODOS SOY NUEVO EN ESTE FORO Y A PENAS INICIANDO EN LA PROGRAMACIÓN MI PROBLEMA ES EL SIGUIENTE DESEO GUARDAR EN UNA BD ...
  #1 (permalink)  
Antiguo 03/10/2009, 00:31
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 4 años, 6 meses
Puntos: 0
Desacuerdo Abrir PDF desde MySQL

HOLA A TODOS SOY NUEVO EN ESTE FORO Y A PENAS INICIANDO EN LA PROGRAMACIÓN MI PROBLEMA ES EL SIGUIENTE DESEO GUARDAR EN UNA BD MySQL LA RUTA DE MIS ARCHIVOS PDF`S Y WORD`S Y DESPUES HACER UNA CONSULTA A TRAVÉS DE UN ID Y QUE ME ABRA EL ARCHIVO INMEDIATAMENTE DE HACER CLICK EN UN HREF....

LO HE ESTADO INTENTANDO PERO SIN ÉXITO MI CÓDIGO ES EL SIGUIENTE:

Código:
public function getBuscar()
    	{
			try
			{
			$conBD = new ConexionBD();
			$conBD->setConectar();
			$cSQL = $conBD->getSQL("SELECT * FROM archivos WHERE ID=".$this->ID);
			if($datos=$conBD->getDatos($cSQL))
			{
				$this->nombre = $datos["nombre"];
				$this->reg_nom = $datos["reg_nom"];
				$this->archivo = $datos["archivo"];
				$this->fecha = $datos["fecha"]; 
				return true;
			}
			else
			{
				$this->ID=0;
				return false;
			}	
			}
			catch(Exception $ex)
			{
				throw new Exception($ex->getMessage());
			}        
    	}
		
		public function getArchivo()
		{return $this->archivo;}
Y MI CÓDIGO DEL HREF ES ESTE:

Código:
<a href="index.php?mod=reg&arch=1" onclick="window.open('<?php $this->arc;?>')">
ESPERO QUE ME PUEDAN AYUDAR Y ME HALLA PODIDO EXPLICAR YO GRACIAS!!!!!!
  #2 (permalink)  
Antiguo 03/10/2009, 11:42
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.020
Antigüedad: 4 años, 7 meses
Puntos: 127
Respuesta: Abrir PDF desde MySQL

Hola
y en $this->arc que viene?
algo asi

carpeta/archivo.pdf
o
http://carpeta/archivo.pdf

SI viene como la primera opcion, entonces el window open
esta incompleto, le falta el http://

Ahora, si imprimes solo el valor de la variable si te muestra
bien el valor?
Bueno, revisa eso y nos cuentas
saludos
  #3 (permalink)  
Antiguo 03/10/2009, 15:06
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: Abrir PDF desde MySQL

HOLA mortiprogramador SI ES LA PRIMERA OPCION EN LA VARIABLE $this->arc VIENE LA RUTA DONDE SE ENCUENTRA UBICADO EL ARCHIVO PDF, pero como lo pongo así de esta forma:
Cita:
onclick="window.open('://<?php $this->arc;?>')">
es que así no me abre el archivo
ni nada que hago!!!!!!!!!!!!!!!!!
  #4 (permalink)  
Antiguo 03/10/2009, 15:54
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.020
Antigüedad: 4 años, 7 meses
Puntos: 127
Respuesta: Abrir PDF desde MySQL

Hola
Ponle echo a la variable para que imprima el valor
Intenta y nos cuentas
saludos
  #5 (permalink)  
Antiguo 03/10/2009, 16:27
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: Abrir PDF desde MySQL

Mmm no no más no me abre me manda error en la conexioón Que puedo hacer ayuda!!!!!!!!!!!!!
  #6 (permalink)  
Antiguo 03/10/2009, 16:31
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.020
Antigüedad: 4 años, 7 meses
Puntos: 127
Respuesta: Abrir PDF desde MySQL

Hola
1. Si imprimes el valor te muestra bien el dato?
2. que error te muestra?
3. si ves el codigo fuente de la pagina, en el window.open si esta la ruta como debe ser?
nos cuentas
  #7 (permalink)  
Antiguo 05/10/2009, 15:29
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: Abrir PDF desde MySQL

HOLA PUES YA HICE TODO LO QUE ME DIJISTE MUCHAS GRACIAS mortiprogramador SI YA ME IMPRIME EL VALOR QUE ARROJA LA CONSULTA QUE HAGO A LA BD PERO AHORA EL PROBLEMA ES EL SIGUIENTE QUE CUANDO MUESTRO POR PRIMERA VEZ LA PAGINA AHI SE CARGAN TODOS LOS ARCHIVOS QUE SE PUEDEN MOSTRAR EN FORMATO PDF PERO AL MOMENTO EN QUE EL USUARIO DA CLICK EN UNO DE ELLOS SE SUPONE QUE EN ESE MOMENTO TIENE QUE CARGARME AUTOMATICAMENTE EL PDF PERO NO MAS NO ME LO HACE!!!!!

LO MUESTRA DEESPUES DE DAR UN SEGUNDO CLICK Y NO ENTIENDO MI ERROR MI CÓDIGO ES EL SIGUIENTE:
Cita:
if(isset($_GET["arch"]))
{
$r = new Regiduria_Arch($_GET["arch"],"","");
if($r->getBuscar())
{
$Reg = new Regiduria($r->getArchivo(),$r->getNombre());
echo $Reg->principal();
}
else
{
$Reg = new Regiduria($_GET["arch"],"","");
echo $Reg->principal();
}
}
else
{
$Reg = new Regiduria(0,"","");
echo $Reg->principal();
}
EL LINK QUEDA DE LA SIGUIENTE MANERA:


<a href="index.php?mod=reg&arch=1" onclick="window.open('<?php echo $this->arc;?>','<?php echo $this->regnom;?>')">

ALGUIEN SABE CUAL ES MI ERROR!!!!!!!!!!!!!!
  #8 (permalink)  
Antiguo 05/10/2009, 15:37
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 6 años
Puntos: 16
Respuesta: Abrir PDF desde MySQL

Cita:
Iniciado por infinitum88 Ver Mensaje
HOLA PUES YA HICE TODO LO QUE ME DIJISTE MUCHAS GRACIAS mortiprogramador SI YA ME IMPRIME EL VALOR QUE ARROJA LA CONSULTA QUE HAGO A LA BD PERO AHORA EL PROBLEMA ES EL SIGUIENTE QUE CUANDO MUESTRO POR PRIMERA VEZ LA PAGINA AHI SE CARGAN TODOS LOS ARCHIVOS QUE SE PUEDEN MOSTRAR EN FORMATO PDF PERO AL MOMENTO EN QUE EL USUARIO DA CLICK EN UNO DE ELLOS SE SUPONE QUE EN ESE MOMENTO TIENE QUE CARGARME AUTOMATICAMENTE EL PDF PERO NO MAS NO ME LO HACE!!!!!

LO MUESTRA DEESPUES DE DAR UN SEGUNDO CLICK Y NO ENTIENDO MI ERROR MI CÓDIGO ES EL SIGUIENTE:

EL LINK QUEDA DE LA SIGUIENTE MANERA:


<a href="index.php?mod=reg&arch=1" onclick="window.open('<?php echo $this->arc;?>','<?php echo $this->regnom;?>')">

ALGUIEN SABE CUAL ES MI ERROR!!!!!!!!!!!!!!
$this->arc y $this->regnom a que objetos hace referencia? dentro del index vas a tener que usar el objeto instanciado para referirte a la variable
  #9 (permalink)  
Antiguo 05/10/2009, 15:47
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: Abrir PDF desde MySQL

OK SI ESO YA LO CONTEMPLE ESTE ES MI CODIGO: DOND UTILIZO ESOS OBJETOS:
TENGO UNA CLASE QUE SE LLAMA ARCHIVO Y ES LA SIEGUIENTE:

Cita:
class Archivo
{
private $arc;
private $regnom;

public function Regiduria($a,$rn)
{
$this->arc = $a;
$this->regnom = $rn;
}
Y OTRA QUE SE LLAMA Arch que es la que contiene la consulta a la BD es la siguiente:
Cita:
class Arch
{
private $ID;
private $archivo;
private $reg_nom;

public function Regiduria_Arch($id,$a,$arc)
{
$this->ID = $id;
$this->archivo = $a;
$this->nombre = $n;
}

public function getBuscar()
{
try
{
$conBD = new ConexionBD();
$conBD->setConectar();
$cSQL = $conBD->getSQL("SELECT * FROM archivos WHERE ID=".$this->ID);
if($datos=$conBD->getDatos($cSQL))
{
$this->nombre = $datos["nombre"];
$this->reg_nom = $datos["reg_nom"];
$this->archivo = $datos["archivo"];
$this->fecha = $datos["fecha"];
return true;
}
else
{
$this->ID=0;
return false;
}
}
catch(Exception $ex)
{
throw new Exception($ex->getMessage());
}
}

public function getArchivo()
{return $this->archivo;}

public function getNombre()
{return $this->reg_nom;}
}
y en la siguiente clase es dond paso las variables:
Cita:
if(isset($_GET["arch"]))
{
$r = new Regiduria_Arch($_GET["arch"],"","");
if($r->getBuscar())
{
$Reg = new Regiduria($r->getArchivo(),$r->getNombre());
echo $Reg->principal();
}
else
{
$Reg = new Regiduria($_GET["arch"],"","");
echo $Reg->principal();
}
}
else
{
$Reg = new Regiduria(0,"","");
echo $Reg->principal();
}
  #10 (permalink)  
Antiguo 05/10/2009, 15:57
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 6 años
Puntos: 16
Respuesta: Abrir PDF desde MySQL

pero no entiendo, estas queriendo instanciar una funcion no la clase

Regiduria_Arch es un metodo de la clase Arch, con una sola clase podes hacer las dos cosas, es cuestion de agregar los metodos correctos
Código php:
Ver original
  1. <?php
  2. class Arch
  3.     {
  4.         private $ID;
  5.         private $archivo;
  6.         private $reg_nom;
  7.  
  8.         public function Regiduria_Arch($id,$a,$arc)
  9.         {
  10.             $this->ID = $id;
  11.             $this->archivo = $a;
  12.             $this->nombre = $n;
  13.         }
  14.  
  15.         public function getBuscar()
  16.         {
  17.             try
  18.             {
  19.                 $conBD = new ConexionBD();
  20.                 $conBD->setConectar();
  21.                 $cSQL = $conBD->getSQL("SELECT * FROM archivos WHERE ID=".$this->ID);
  22.                 if($datos=$conBD->getDatos($cSQL))
  23.                 {
  24.                     $this->nombre = $datos["nombre"];
  25.                     $this->reg_nom = $datos["reg_nom"];
  26.                     $this->archivo = $datos["archivo"];
  27.                     $this->fecha = $datos["fecha"];
  28.                 return true;
  29.                 }
  30.                 else
  31.                 {
  32.                     $this->ID=0;
  33.                     return false;
  34.                 }
  35.             }
  36.                 catch(Exception $ex)
  37.             {
  38.                 throw new Exception($ex->getMessage());
  39.             }
  40.         }
  41.  
  42.         public function getArchivo()
  43.         {return $this->archivo;}
  44.  
  45.         public function getNombre()
  46.         {return $this->reg_nom;}
  47.     }

Cita:
y en la siguiente clase es dond paso las variables:
y una clase mas ?? cual es

fijate que $r = new Regiduria_Arch va a buscar una clase Regiduria_Arch
lo correcto seria $r = new Arch();
  #11 (permalink)  
Antiguo 05/10/2009, 16:09
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: Abrir PDF desde MySQL

Lo que pasa es que en la clase archivo tengo lo que es el diseÑo de la pagina y en la clase arch tengo la conexion a la bd y pues la otra clase es la principal de mi pÁgina y mÁs o menos esa era la ide que tenÍa
  #12 (permalink)  
Antiguo 05/10/2009, 21:30
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.020
Antigüedad: 4 años, 7 meses
Puntos: 127
Respuesta: Abrir PDF desde MySQL

Hola
Pues no estoy seguro, pero tal vez tener el href y el onclick en un tag <a> te puede estar dando ese inconveniente
Prueba a quitarle el link del href y dejarlo algo asi
< a href ="javascript:window.open('parametros');">Prueba </a>
Saludos
  #13 (permalink)  
Antiguo 06/10/2009, 16:11
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: Abrir PDF desde MySQL

HOLA A TODOS PUES YA LO HE INTENTADO DE MIL FORMAS PERO NADA MAS NO SALE EL PROBLEMA ES EL SIGUIENTE ES QUE CUANDO EL USUARIO DE CLICK EN EL ARCHIVO QUE QUIERE DESCARGAR O VISUALIZAR SE TIENEN QUE CREAR LAS VARIABLES PARA ENVIARLE LA CONSULTA A LA BD Y QUE ME RETORNE LA RUTA DEL ARCHIVO QUE QUIERO VISUALIZAR....

Y HE AHI DOND HE ESTADO BATALLANDO Y NO HE PODIDO REALIZAR....

GRACIAS mortiprogramador POR RESPONDER Y ESTAR DANDOME POSIBLES SOLUCIONES PERO AUN NO HE PODIDO RESOLVER MI PROBLEMA!!!!!!
  #14 (permalink)  
Antiguo 06/10/2009, 16:50
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: Abrir PDF desde MySQL

hola soy nuevo aca también y no veo donde se realiza la consulta.
bueno micaso es parecido pero el codigo que tengo solo me saca un documento pdf de la bd y quisiera que me mostrara los que se han guardado enseguida del primero.

Hola todos necesito ayuda para ver que se puede hacer para poder sacar de una base de datos desde php varios documentos pdf porque el que utilice nadamas me muestra el primero que se ingresa a la base de datos el codigo es este.

Este es elque lista
// listadocumentos.php

$enlace = mysql_connect($host,$user,$password);
mysql_select_db($db,$enlace);

$qry = "SELECT id, nombre, titulo, tipo FROM archivos"; //WHERE id=$fila[id]";
$res = mysql_query($qry);

while($fila = mysql_fetch_array($res))
{
print "$fila[titulo]
<br>
$fila[nombre] ($fila[tipo])
<br>
<a href='descargar_documento.php?id=$fila[id]'>Descargar</a>
<a href='curriculum.html'>ir a curriculum</a>
<br>
<br>";
}

y aqui es el que me deberia descargar los demas. Que se podria hacer para que me muestre no solo un doc.pdf sino que se muestren todos los que esten guardados alli ?

//descargar_documentos.php

$enlace = mysql_connect($host,$user,$password);
mysql_select_db($db,$enlace);

$qry = "SELECT contenido FROM archivos";
$res = mysql_query($qry);
$contenido = mysql_result($res, 0, "contenido");

header("Content-type: application/pdf");
print $contenido;
  #15 (permalink)  
Antiguo 06/10/2009, 17:27
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 6 años
Puntos: 16
Respuesta: Abrir PDF desde MySQL

Cita:
Iniciado por infinitum88 Ver Mensaje
Lo que pasa es que en la clase archivo tengo lo que es el diseÑo de la pagina y en la clase arch tengo la conexion a la bd y pues la otra clase es la principal de mi pÁgina y mÁs o menos esa era la ide que tenÍa
pero eso no tiene nada que ver con lo que te estaba diciendo, que estas llamando a clases que no tenes definidas

y cuando haces esto

Código PHP:
<a href="index.php?mod=reg&arch=1" onclick="window.open('<?php echo $this->arc;?>','<?php echo $this->regnom;?>')">
$thi->arc y $this->regnom. Lo tienes dentro de una clase o lo estas corriendo sobre el script que ejecuta las acciones. Lo mejor seria que pongas las clases completas que estas usuando y el script que recorre las clases y muestra los datos, porque sino no sabemos si estas definiendo mal las cosas, por lo que se ve, es que estas instanciando clases que no existen, y que estas haciendo una refencia a la variable $arc y la variable $regnom pero dentro de una clase, si esto no lo estas haciendo dentro de la clase no va a devolver un volor porque $this: es la referencia a la propia instancia de la clase, cuando esta se está ejecutando puedes referenciar a elementos propios de ella, por ejemplo, un atributo y un método
  #16 (permalink)  
Antiguo 06/10/2009, 20:20
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.020
Antigüedad: 4 años, 7 meses
Puntos: 127
Respuesta: Abrir PDF desde MySQL

Hola

- infinitum, oye las palabras de samu22
- pachol, prueba cambiando esto
while($fila = mysql_fetch_array($res))
por esto
while($fila == mysql_fetch_array($res))
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




La zona horaria es GMT -6. Ahora son las 08:30.
SEO by vBSEO 3.3.2