Foros del Web » Programando para Internet » PHP »

Problema con "Insert"

Estas en el tema de Problema con "Insert" en el foro de PHP en Foros del Web. Hola, tendo el siguiente código: Código: <?php $image = imagecreatefromjpeg('sin_ruta/1.jpg'); ob_start(); imagejpeg($image); $jpg= ob_get_contents(); ob_end_clean(); $jpg = str_replace('##','\#\#',mysql_escape_string($jpg)); $result=mysql_query("INSERT INTO img2 SET foto ='$jpg'"); ?> ...
  #1 (permalink)  
Antiguo 05/06/2007, 01:48
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Problema con "Insert"

Hola, tendo el siguiente código:
Código:
<?php
$image = imagecreatefromjpeg('sin_ruta/1.jpg');
ob_start();
imagejpeg($image);
$jpg= ob_get_contents();
ob_end_clean();
$jpg = str_replace('##','\#\#',mysql_escape_string($jpg));
$result=mysql_query("INSERT INTO img2 SET foto ='$jpg'");
?>
Cuando yo ejecuto la página desde no me aparece ningún error, pero al hacer un select en la tabla en Mysql para verificar que el insert se a realizado me aparece en el campo foto: Ï Ó. ¿Alquien sabe por qué?
Muchas gracias
Saludos

Última edición por zaida; 05/06/2007 a las 01:56
  #2 (permalink)  
Antiguo 05/06/2007, 04:54
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Re: Problema con "Insert"

Cambia esto :

Código:
$result=mysql_query("INSERT INTO img2 SET foto ='$jpg'");
Por esto :

Código:
$result=mysql_query("INSERT INTO img2 (foto) VALUES ('$jpg')");
Nos vemos.
  #3 (permalink)  
Antiguo 05/06/2007, 04:59
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con "Insert"

Muchas gracias!!!
Conseguí solucionarlo de otra manera:

Código PHP:
<?php
// Abro el archivo de imagen para cargar sus contenidos
$archivo 'sin_ruta/2.jpg';
$fp fopen ($archivo'r');
if (
$fp)
{
    
$datos fread ($fpfilesize ($archivo)); // cargo la imagen
    
fclose($fp);
    
// averiguo su tipo mime
    
$tipo_mime 'image/jpeg';
    
$isize getimagesize($archivo);
    if (
$isize)
    
$tipo_mime $isize['mime'];
    
// La guardamos en la BD
    
$datos base64_encode ($datos);
    
$sql "INSERT INTO img4 (foto, tipo) VALUES ('$datos', '$tipo_mime')";
    
$res mysql_query($sql);
    if (!
$res)
        echo 
"Error al ejecutar la consulta ($sql)\n";
    
//hacemos el select
    
$sql "SELECT foto, tipo FROM img4 WHERE id=3";
    
$res mysql_query ($sql);
    if ( 
$res AND mysql_num_rows($res)>)
    { 
// se ha encontrado la imagen
    
$datos mysql_fetch_array ($res);
    
// Indicamos al navegador el tipo de imagen que le vamos a enviar
    
header ('Content-type: ' $datos['tipo']);
        
// Enviamos los datos binarios (la imagen)
    
echo base64_decode($datos['foto']);
    }
    else
    echo 
"Error al ejecutar la consulta ($sql)\n";

}
else
echo 
"Error al abrir el archivo";
?>
saludos!!!
  #4 (permalink)  
Antiguo 05/06/2007, 05:48
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con "select"

Ahora me surge otro problema, el código que tengo sólo me permite visualizar una foto, con la id que yo le diga. ¿Cómo puedo hacerlo para que me muestre todas las fotos que contenga la tabla en mysql?

Muchas gracias
Saludos:
  #5 (permalink)  
Antiguo 05/06/2007, 06:53
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Problema con "Insert"

Hola, para que te liste todas debes modificar la consulta, es decir sin ninguna clausula, y utilizar un bucle para ir mostrando todas las imagenes. Saludos
__________________
->Aprender es un proceso que incluye el error..
  #6 (permalink)  
Antiguo 05/06/2007, 07:21
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con "Insert"

Sería mucha molestia que me explicaras como hacerlo por favor?, es que soy nueva en ésto, muchas gracias adelantadas
Saludos
  #7 (permalink)  
Antiguo 05/06/2007, 07:33
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Problema con "Insert"

Hola, prueba reemplazando esto.
Código PHP:
$sql "SELECT foto, tipo FROM img4 "
    
$res mysql_query ($sql); 
    if ( 
$res AND mysql_num_rows($res)>
    { 
// se ha encontrado la imagen 
    
while($datos mysql_fetch_array ($res))
{
  
// Indicamos al navegador el tipo de imagen que le vamos a enviar 
    
header ('Content-type: ' $datos['tipo']); 
        
// Enviamos los datos binarios (la imagen) 
    
echo base64_decode($datos['foto']); 
}
    } 
    else 
    echo 
"Error al ejecutar la consulta ($sql)\n"
Saludos.
__________________
->Aprender es un proceso que incluye el error..
  #8 (permalink)  
Antiguo 06/06/2007, 02:26
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con "Insert"

Hola:
He probado tu código y me pasa lo mismo que con el código que hice yo ayer:

Código PHP:
$sql "SELECT foto, tipo FROM img4";
    
$i=0;
    
$consulta=mysql_query($sql,$conexion);
    if(
$consulta!=NULL)
    {
        if(
mysql_num_rows($consulta)!=0)
        {
            while(
$row=mysql_fetch_array($consulta))
            {
            
$dato[$i]=$row['tipo'];
            echo 
$dato[$i];
            
header ("Content-type:".$dato[$i]);
            
$imagenes[$i]=$row['foto'];
            echo 
$imagenes[$i];
            
$imagen[$i]=base64_decode($imagenes[$i]);
            echo 
$imagen[$i];
            
$i++;
            }
         }
          } 
Cuando ejecuto la página tanto con tu código cómo con el mío me aparece toda la página con caracteres. No consigo encontrar el error.
Muchas gracias
Saludos
  #9 (permalink)  
Antiguo 06/06/2007, 07:30
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con "Insert"

Sigo con el mismo problema, quiero que me muestre todas las imágenes que tiene mi tabla en mysql, y solo me muestra una, éste es el código:

Código PHP:
    $sql "SELECT archivo_binario FROM archivos";
       
$consulta mysql_query($sql) or die ("No se pudo ejecutar la consulta"); 
    
$i=0;
    if(
$consulta!=NULL)
    {
        if(
mysql_num_rows($consulta)!=0)
        {
            while (
$datos=mysql_fetch_array($consulta))
            {
                
$archivo_bin[$i]=$datos['archivos_binarios'];
                
$pepe[$i]=base64_decode($archivo_bin[$i]);
                echo 
base64_decode($datos['archivo_binario']);
                echo 
$pepe[$i];
                echo 
$i;
                
$i++;
            }
        }
    } 
Alguien puede ayudarme y decirme que estoy haciendo mal??
Muchas gracias
Saludos:
  #10 (permalink)  
Antiguo 06/06/2007, 08:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema con "Insert"

Para que te muestre todas las imagenes tienes que primero hacer una pagina (HTML) donde cicles todos tus registros y obtengas tu ID, luego en cada celda llamas al script que te muestra 1 registro e imprimes la imagen con el registro que te envio.

Saludos.
  #11 (permalink)  
Antiguo 07/06/2007, 04:07
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con "Insert"

Puedes explicarmelo un poco más detallado por favor? La página html la tengo realizada ya.

Muchas gracias
Saludos:
  #12 (permalink)  
Antiguo 07/06/2007, 05:29
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con "Insert"

Ya lo conseguí!!!!

subirimagen.php

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="grabarimagen.php" method="post" enctype="multipart/form-data" name="form1">
 <p>Imagen a subir: 
   <input name="foto" type="file">
</p>
 <p>
   <input name="Submit" type="submit" value="Enviar">
</p>
</form>
</body>
</html> 
grabarimagen.php

Código PHP:
<?php
  $foto_type 
$_FILES['foto']['type'];
  
$foto_name $_FILES['foto']['name'];
  
$foto_size $_FILES['foto']['size'];    
  
  
// Compruebas que se ha subido un archivo
  
if($foto_name != ""
  {
     
$filetype $foto_type;      
    
// Compruebas que se trata de una foto
      
if (!strcmp($filetype"image/gif") || !strcmp($filetype"image/jpeg") ||
         !
strcmp($filetype"image/pjpeg") || !strcmp($filetype"image/x-png")) 
    {
         
$filename $foto_name;
          
$filesize $foto_size;
      
$file_tmp $_FILES['foto']['tmp_name'];
      
//abriendo archivo temporal
      
$file fopen($file_tmp'rb');
      
$filedata fread($filefilesize($file_tmp));
      
$filedata addslashes($filedata);
      
fclose($file);              

          
//Insertando datos
       
$conexion mysql_connect('localhost''root''') or die("No se puede conectar");
       
$db mysql_select_db('utopia'$conexion) or die("No se puede seleccionar la BD");
     
       
mysql_query("INSERT INTO imagenes values('', '$filename', '$filetype', '$filesize', '$filedata')");
     } 
  }
?>
mostrar.php

Código HTML:
<html>
<body>
<table border=1 align="center">
<tr>
     <td align="center">Id</td>
     <td align="center">Foto</td>
</tr> 
Código PHP:
<?php
    $conexion 
mysql_connect('localhost''root''') or die("No se puede conectar");
    
$db mysql_select_db('utopia'$conexion) or die("No se puede seleccionar la BD");
    
$result mysql_query("SELECT id from imagenes order by id");
    while (
$reg mysql_fetch_array($result))
     {
             echo 
"<tr>";
                     echo 
"<td>".$reg['id']."</td>";
                     echo 
"<td>";                  
            echo 
"<img src=\"imagen.php?id=".$reg['id']."\">";
                     echo 
"</td>";
             echo 
"</tr>";
     }
?>
Código HTML:
</table>
</body>
</html> 
imagen.php

Código PHP:
<?php
  $conexion 
mysql_connect('localhost''root''') or die("No se puede conectar");
   
$db mysql_select_db('utopia'$conexion) or die("No se puede seleccionar la BD");
   
$reg mysql_query("SELECT * FROM imagenes WHERE id = ".$_GET['id']."");
  
  
$file mysql_fetch_array($reg);
  
  
header("Content-disposition: ".$file['filename']."");
  
header("Content-Length: ".strlen($file['filedata'])."");
  
header("Content-type:".$file['filetype']."");
  
header("Pragma: no-cache");
  
header("Expires: 0");
  echo 
$file['filedata'];
?>
Aquí lo dejo por si a alguien le sirve
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 16:45.