Foros del Web » Programando para Internet » PHP »

Texto en un BLOB que no se ve...

Estas en el tema de Texto en un BLOB que no se ve... en el foro de PHP en Foros del Web. Hola a todos ! Trabajo en un periódico y estoy haciendo un buscador de textos publicados. Los textos los extraigo mediente una herramienta que me ...
  #1 (permalink)  
Antiguo 30/01/2008, 14:46
 
Fecha de Ingreso: febrero-2002
Mensajes: 32
Antigüedad: 22 años, 2 meses
Puntos: 0
Texto en un BLOB que no se ve...

Hola a todos !

Trabajo en un periódico y estoy haciendo un buscador de textos publicados. Los textos los extraigo mediente una herramienta que me crea un fichero de texto plano por cada maqueta de Quark. Luego abro ese fichero de texto y lo introduzco en un campo BLOB.

El problema que estoy teníendo es que no soy capaz de ver el texto que he metido desde la base de datos. Si hago un listado completo (le digo al buscador que me lo muestre todo) mediante código PHP puedo ver el texto sin problemas, pero cuando "navego" por la base de datos no soy capáz de verlo, y lo peor es que las búsquedas no funcionan. En el momento que le pongo una sentencia LIKE %%cadena a buscar%% en la SQL no encuentra nada. Y os aseguro que el buscador funciona, porque si meto texto manualmente en el BLOB lo encuentra.

Estoy convencido que el problema es la codificación del texto que introduzco pero estoy muy perdido.

A alguien se le ocurre algo ?

Gracias.
Un saludo.
  #2 (permalink)  
Antiguo 30/01/2008, 16:10
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: Texto en un BLOB que no se ve...

¿Como es el algoritmo que estas usando para insertar en el campo BLOB?

Saludos.
  #3 (permalink)  
Antiguo 30/01/2008, 17:24
 
Fecha de Ingreso: febrero-2002
Mensajes: 32
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Texto en un BLOB que no se ve...

Cita:
Iniciado por GatorV Ver Mensaje
¿Como es el algoritmo que estas usando para insertar en el campo BLOB?

Saludos.
Código PHP:
        $dirNow="docs/";
        
$dirOk="docs/ok/";
        
$dirExiste="docs/existe/";        
        
        
$handle=opendir($dirNow);
        
        while (
$fileNow readdir($handle)) 
        {    
            
$Ruta $dirNow.$fileNow;    
            if (
is_file($Ruta)) {
                
                
$fpuntero fopen($Ruta,"r");
                
$sTxt fread ($fpuntero,filesize($Ruta));
                
                
$IdCabecera=dameCodigoEdicion(substr($fileNow,0,3));
                
// Obtengo la fecha de la edicion y la pagina del nombre del archivo.
                
$anoFile=substr($fileNow,4,4);
                
$mesFile=substr($fileNow,9,2);
                
$diaFile=substr($fileNow,12,2);
                
$pagina=substr($fileNow,15,2);
                
                
$sEdicion $anoFile."-".$mesFile."-".$diaFile;

                
fclose($fpuntero);
                
                
mysql_select_db($database_buscatextos$buscatextos);

                
// Comprobamos Si Existe Alguna Edicion
                
$selectSQL "SELECT dEdicion FROM tblTextos";
                
$rsTextosVacio mysql_query($selectSQL$buscatextos) or die(mysql_error());
                
$row_rsTextosVacio mysql_fetch_assoc($rsTextosVacio);
                
$totalRows_rsTextosVacio mysql_num_rows($rsTextosVacio);                
                
mysql_free_result($rsTextosVacio);                
                
                
// Comprobamos Si La Edición Existe
                
$selectSQL "SELECT dEdicion FROM tblTextos WHERE dEdicion ='".$sEdicion."' AND idCabecera='".$IdCabecera."' AND nPagina='".$pagina."'";
                
$rsTextos mysql_query($selectSQL$buscatextos) or die(mysql_error());
                
$row_rsTextos mysql_fetch_assoc($rsTextos);
                
$totalRows_rsTextos mysql_num_rows($rsTextos);                
                
mysql_free_result($rsTextos);                
                
                if (
$totalRows_rsTextos==0) {
                    echo 
"<br> No existe la edición";
                } else {
                    echo 
"<br> Existe la edición";
                } 

                
        
                
// Si La Tabla De Ediciones Está Vacia o NO Se Ha Dado De Alta La Edición ->> ALTA
                
if (($totalRows_rsTextosVacio==0) or ($totalRows_rsTextos==0)) {
                        
                        
// Damos De Alta Los Textos De La Nueva Edicion
                        
$insertSQL "INSERT INTO tblTextos (idEdicion,dEdicion,sContenido,IdCabecera,nPagina) ";                
                        
$insertSQL $insertSQL."VALUES (NULL,'".$sEdicion."','".$sTxt."','".$IdCabecera."','".$pagina."')";                
                        
                        
$Result1 mysql_query($insertSQL$buscatextos) or die(mysql_error());
                        

                        

            
                    
// Muevo El Archivo Procesado a Docs/OK
                    
if (copy($Ruta$dirOk.$fileNow)) {
                        
unlink($Ruta);
                    }
                    
                } else { 
// else if ($totalRows_rsTextos > 0) {
                
                    // Muevo El Archivo Procesado a Docs/Existe
                    
if (copy($Ruta$dirExiste.$fileNow)) {
                        
unlink($Ruta);
                    }

                } 
// End if ($totalRows_rsTextos > 0) {  
                
                
            
}    // End If is_file($Ruta)        
            
        
}    // End While
        
closedir($handle); 
  #4 (permalink)  
Antiguo 30/01/2008, 17:52
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: Texto en un BLOB que no se ve...

mmm en ese código que pones, no estas insertando nada en un campo BLOB, meramente estas subiendo un archivo y al servidor y lo copias ahí.

Saludos.
  #5 (permalink)  
Antiguo 30/01/2008, 18:14
 
Fecha de Ingreso: febrero-2002
Mensajes: 32
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Texto en un BLOB que no se ve...

Código PHP:


// Damos De Alta Los Textos De La Nueva Edicion 
$insertSQL "INSERT INTO tblTextos (idEdicion,dEdicion,sContenido,IdCabecera,nPagina) ";                 
$insertSQL $insertSQL."VALUES (NULL,'".$sEdicion."','".$sTxt."','".$IdCabecera."','".$pagina."')";                 
                         
                        
$Result1 mysql_query($insertSQL$buscatextos) or die(mysql_error()); 
Donde $sTxt es el contenido del fichero de texto

Código PHP:

$fpuntero 
fopen($Ruta,"r"); 
$sTxt fread ($fpuntero,filesize($Ruta)); 
  #6 (permalink)  
Antiguo 30/01/2008, 18:19
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: Texto en un BLOB que no se ve...

¿Haz visto si en tu gestor de base de datos aparece el texto plano?, ¿Porque no utilizas un campo tipo TEXT o MEDIUMTEXT?

Saludos.
  #7 (permalink)  
Antiguo 31/01/2008, 14:58
 
Fecha de Ingreso: febrero-2002
Mensajes: 32
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Texto en un BLOB que no se ve...

Hola GatorV !

En mi gestor (MySql-Front) no se ve el texto plano. Hay una opción para que te muestre el contenido del campo en Hexadecimal y ahí si aparece, aunque no con el formato un poco estraño.

He probado a cambiar el campo BLOB por un TEXT y sigue exactamente igual.

Un saludo.
  #8 (permalink)  
Antiguo 31/01/2008, 15:57
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: Texto en un BLOB que no se ve...

¿Que tipo de texto es el que levantas? ¿Texto Plano? o ¿un documento de word?

Saludos
  #9 (permalink)  
Antiguo 04/02/2008, 14:01
 
Fecha de Ingreso: febrero-2002
Mensajes: 32
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Texto en un BLOB que no se ve...

El archivo es texto plano. También probé a exportar las maquetas en archivos de word, pero eran ilegibles. Creo que el problema es la codificación del archivo de texto plano, abriendolo con el notepad, el texto se ve prefectamente y si hago un echo de la SQL que le lanzo a MySql, el texto se ve prefectamente. Sin embargo, cuando navego por la BD con mi gestor (MySql Front) no veo el texto que en teoría se ha insertado. Y como ya dige en mi primer mensaje, el texto está porque cuando lanzo una consulta sin filtro, se muestra en pantalla todos los registro, pero en el momento que meto un filtro para buscar... na de na
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 17:45.