Foros del Web » Programando para Internet » PHP »

Tomar datos y insertar foto (BLOB) en ficha de usuario

Estas en el tema de Tomar datos y insertar foto (BLOB) en ficha de usuario en el foro de PHP en Foros del Web. Estimados, Favor su ayuda, tengo que realizar una mostrar con una imagen, la imagen esta en una tabla en BLOB, rescato los datos y rescato ...
  #1 (permalink)  
Antiguo 12/12/2015, 23:27
 
Fecha de Ingreso: julio-2010
Mensajes: 19
Antigüedad: 13 años, 9 meses
Puntos: 0
Tomar datos y insertar foto (BLOB) en ficha de usuario

Estimados,

Favor su ayuda, tengo que realizar una mostrar con una imagen, la imagen esta en una tabla en BLOB, rescato los datos y rescato la imagen.

Lo que busco ahora es mostrar los datos y la imagen realizando un match con la imagen_id del formulario del usuario con el id de la imagen.

por alguna razon cuando inserto el codigo dentro del proceso me muestra solo una pequeña imagen como error. (o sea no se ve ) y cuando lo pongo despues del proceso tampoco lo toma, estoy bloqueado y no he podido, he buscado por internet pero tampoco lo he encontrado.

Esto es para una vista de datos mas una imagen, por lo que tendra que entrar en la array y mostrarse en cada vista de usuario.

este es el codigo :

Código PHP:
Ver original
  1. <?php
  2. include('conexion.php');
  3. //include_once('../imagen.php');
  4.  
  5. $dato ="";//$_POST["dato"];
  6.  
  7. //$_POST['dato'];
  8.  
  9. //Busqueda de la variable dato:
  10.  
  11. //Vista para devolver
  12. echo '<table class="table table-striped table-condensed table-hover">
  13.             <tr>
  14.                 <th width="300">Name</th>
  15.                <th width="200">last_name</th>
  16.                <th width="150">Passaport</th>
  17.                <th width="150">Mobile</th>
  18.                   <th width="150">Imagen</th>
  19.            </tr>';
  20.  
  21. $registro= mysqli_query($conexion,"SELECT * FROM pertra WHERE name LIKE '%$dato%' OR pasaport LIKE '%$dato%' ORDER BY imagen_id ASC");
  22. if(mysqli_num_rows($registro)>0){
  23.     while($registro2 = mysqli_fetch_array($registro)){
  24. //CREAMOS NUESTRA VISTA Y LA DEVOLVEMOS AL AJA
  25. echo '<tr>
  26.                 <td>'.$registro2['name'].'</td>
  27.                 <td>'.$registro2['last_name'].'</td>
  28.                 <td>'.$registro2['pasaport'].'</td>
  29.                 <td>'.$registro2['mobile'].'</td>
  30.                 <td>'.$registro2['imagen_id'].'</td>
  31.                 <td><a href="javascript:editarProducto('.$registro2['pasaport'].');" class="glyphicon glyphicon-edit"></a> <a href="javascript:eliminarProducto('.$registro2['pasaport'].');" class="glyphicon glyphicon-remove-circle"></a></td>
  32.                 </tr>';
  33.     }
  34.  
  35. }else{
  36.     echo '<tr>
  37.                 <td colspan="6">No se encontraron resultados</td>
  38.             </tr>';
  39. }
  40. echo '</table>';
  41. //$ima = mysqli_query($conexion,"SELECT imagen_id from imagenes where imagen_id = ".$registro2['imagen_id']."");
  42. $ima = mysqli_query($conexion,"SELECT imagen_id from imagenes where imagen_id = '26'");
  43.  
  44. if(mysqli_num_rows($ima)>0){
  45.     while ($res=mysqli_fetch_array($ima)) {
  46.  
  47.                 //<td>''<img src="'.$res.["imagen"].'" width="100" heigth="100"><br>';
  48.     # code...
  49.  
  50.                 echo '<tr>
  51.                     <td>'.$res['imagen_id'].'</td>                 
  52.                 </tr>';
  53.  
  54.  
  55.     }
  56. }
  57.  
  58. //si la variable imagen no ha sido definida nos dara un advertencia.
  59.     echo '<tr>
  60.                     <td>'.$res['imagen_id'].'</td>
  61.                 </tr>';
  62. // Aqui empieza el problema, el codigo funciona pero debo mostrar la imagen en el array o fuera del array pero dentro de la vista de cada usuario.
  63.  
  64. /*$id = $res['imagen_id'];
  65. echo "$id"; //$_GET['id'];
  66.  
  67. if ($id > 0){
  68.     //vamos a crear nuestra consulta SQL
  69.     $consulta = "SELECT imagen, tipo_imagen FROM imagenes WHERE imagen_id = $id";
  70.     //con mysql_query la ejecutamos en nuestra base de datos indicada anteriormente
  71.     //de lo contrario mostraremos el error que ocaciono la consulta y detendremos la ejecucion.
  72.     $resultado= mysqli_query($conexion,$consulta) or die(mysql_error());
  73.  
  74.     //si el resultado fue exitoso
  75.     //obtendremos el dato que ha devuelto la base de datos
  76.     $datos = mysqli_fetch_assoc($resultado);
  77.  
  78.     //ruta va a obtener un valor parecido a "imagenes/nombre_imagen.jpg" por ejemplo
  79.     $imagen = $datos['imagen'];
  80.     $tipo = $datos['tipo_imagen'];
  81.      
  82.     //ahora colocamos la cabeceras correcta segun el tipo de imagen
  83.     header("Content-type: $tipo");
  84.      
  85.     echo $imagen;
  86.  
  87. }
  88.    
  89.  */
  90. ?>

Si alguien me logra comprender .... GRACIAS.
  #2 (permalink)  
Antiguo 13/12/2015, 09:16
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Tomar datos y insertar foto (BLOB) en ficha de usuario

Si está en un campo BLOB, la imagen debe estar en binario, así que tendrás que "rescatarla" con base64.

Por ejemplo:

Código PHP:
Ver original
  1. <img src="data:image/jpeg;base64,<?php echo base64_encode($datos['imagen']); ?>" />
__________________
¿Te sirvió la respuesta? Deja un +1
  #3 (permalink)  
Antiguo 13/12/2015, 16:38
 
Fecha de Ingreso: julio-2010
Mensajes: 19
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Tomar datos y insertar foto (BLOB) en ficha de usuario

Hola 9,

Mira cuando inserto la imagen con este codigo

$id = '26'; //$_GET['id'];

if ($id > 0){
//vamos a crear nuestra consulta SQL
$consulta = "SELECT imagen, tipo_imagen FROM imagenes WHERE imagen_id = $id";
//con mysql_query la ejecutamos en nuestra base de datos indicada anteriormente
//de lo contrario mostraremos el error que ocaciono la consulta y detendremos la ejecucion.
$resultado= mysqli_query($connection,$consulta) or die(mysql_error());

//si el resultado fue exitoso
//obtendremos el dato que ha devuelto la base de datos
$datos = mysqli_fetch_assoc($resultado);

//ruta va a obtener un valor parecido a "imagenes/nombre_imagen.jpg" por ejemplo
$imagen = $datos['imagen'];
$tipo = $datos['tipo_imagen'];

//ahora colocamos la cabeceras correcta segun el tipo de imagen
header("Content-type: $tipo");

// echo $imagen;


Puedo ver la imagen, pero este codigo es el que trato de insertar en el codigo anterior, pero cuando pongo la imagen no se ve nada.

Trate de poner el codigo abajo de este para ver si se visualizaba la imagen pero me da error de sintaxis.

igua ahora tratare de hacerlo de nuevo ingresando la imagen en el host... aunque no se si es mejor o no ?
  #4 (permalink)  
Antiguo 14/12/2015, 06:59
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Tomar datos y insertar foto (BLOB) en ficha de usuario

No puedes utilizar las cabeceras de esa forma.
http://php.net/manual/es/function.header.php

Crea un nuevo archivo con la función para recuperar la imagen, estableciendo las cabeceras.

Luego donde quieras inserta la imagen la pones como si fuera una ing cualquiera que apunta a tu archivo algo asi
En html
Código HTML:
Ver original
  1. <img src="traer_img.php?id=26">

Traer_img.php
Código PHP:
Ver original
  1. $id = '26'; //$_GET['id'];
  2.  
  3. if ($id > 0){
  4. //vamos a crear nuestra consulta SQL
  5. $consulta = "SELECT imagen, tipo_imagen FROM imagenes WHERE imagen_id = $id";
  6. //con mysql_query la ejecutamos en nuestra base de datos indicada anteriormente
  7. //de lo contrario mostraremos el error que ocaciono la consulta y detendremos la ejecucion.
  8. $resultado= mysqli_query($connection,$consulta) or die(mysql_error());
  9.  
  10. //si el resultado fue exitoso
  11. //obtendremos el dato que ha devuelto la base de datos
  12. $datos = mysqli_fetch_assoc($resultado);
  13.  
  14. //ruta va a obtener un valor parecido a "imagenes/nombre_imagen.jpg" por ejemplo
  15. $imagen = $datos['imagen'];
  16. $tipo = $datos['tipo_imagen'];
  17.  
  18. //ahora colocamos la cabeceras correcta segun el tipo de imagen
  19. header("Content-type: $tipo");
  20.  
  21. echo $imagen;

Última edición por xerifandtomas; 14/12/2015 a las 07:13

Etiquetas: blob, formulario, foto, mysql, registro, select, sql, tabla, tomar, variable
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 22:07.