Foros del Web » Programando para Internet » PHP »

espacios en blanco

Estas en el tema de espacios en blanco en el foro de PHP en Foros del Web. Hola foreros y foreras. A ver si me podéis echar un cable. Resulta que no sé por qué una consulta a la bbdd me está ...
  #1 (permalink)  
Antiguo 14/04/2014, 11:19
 
Fecha de Ingreso: noviembre-2012
Mensajes: 12
Antigüedad: 11 años, 5 meses
Puntos: 0
espacios en blanco

Hola foreros y foreras.
A ver si me podéis echar un cable.
Resulta que no sé por qué una consulta a la bbdd me está devolviendo el valor correctamente peeeero...con espacios en blanco delante del valor. He usado trim() para quitarlos pero no se quitan los jodidos...

Algún consejo????

Código
Código HTML:
function avion(){  
	
			session_start();
			$id = $_SESSION['valid_user'];
			
			try{
				//conectamos con la bbdd
    		include "../php/conexion.php";

        	//consulta a la bbdd
        	$consulta = "SELECT 
							avion
						FROM 
							reservas
						WHERE 
							usuario = '$id'
						AND
							reportada = 'N'
					";	
        
        	$resultado = mysqli_query($db_conn, $consulta);
		
			if(empty($resultado)){
				return '#####';
				}else{
					$row = mysqli_fetch_row($resultado);
					return trim($row[0]);
					}
				
           		
			include "../php/desconexion.php";
			} catch (Exception $e){
				echo $e->getMessage();
				exit;
				
			}
	
	}
y el resultado se muestra aquí

Código HTML:
<input type="text" id="txtavion" name="txtavion" value="<?php echo(avion());?>" disabled/> 
El resultado lo muestra correctamente a exepción delproblema de los espacios en blanco.

Gracias!!!
  #2 (permalink)  
Antiguo 14/04/2014, 12:02
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: espacios en blanco

Si trim no te quita esos espacios en blanco probablemente no lo sean, talvez sean algún carácter extraño producto de haber copiado y pegado ese texto de alguna web o algún otro documento. La solución es esta: debes identificar ese dichoso carácter extraño. Para hacerlo debes copiar ese espacio copiarlo en algún archivo php y aplicarle la función ord de php para identificar su número ASCII, luego usas ese valor para reemplazar masivamente en tu tabla esa caracter por vacío, de modo que se borren. Puedes hacerlo de esta manera:

UPDATE tabla
SET campo = REPLACE(campo, CHAR(n), '')

Donde n es el número ASCII que encontraste con php mediante la función ord. Espero que te sirva mis recomendaciones.
  #3 (permalink)  
Antiguo 14/04/2014, 12:18
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 7 meses
Puntos: 38
Respuesta: espacios en blanco

Prueba con
Código PHP:
Ver original
  1. str_replace(' ', '', $row[0]);

Esto te sustutuira todos los espacios en blanco ...

Existe lo mismo pero con exp. regulares... no estoy muy puesto pero creo que sería algo así :
Con esto intentamos solo eliminar el primer espacio en blanco : ^ <-empieza por /s<-espacio en blanco
Código PHP:
Ver original
  1. preg_replace( /^\s/, '',  $row[0]);

Ya me dices tal !

Saludos!

Última edición por Djoaq; 14/04/2014 a las 12:30
  #4 (permalink)  
Antiguo 14/04/2014, 12:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: espacios en blanco

Yo mte sugeriría reemplazar esto:
Código PHP:
Ver original
  1. $consulta = "SELECT avion
  2.    FROM  reservas
  3.    WHERE  usuario = '$id' AND reportada = 'N'";
Por algo como:

Código PHP:
Ver original
  1. $consulta = "SELECT TRIM(avion) avion
  2.    FROM  reservas
  3.    WHERE  usuario = '$id' AND reportada = 'N'";
y veamos si lo que tienes son espacios en los datos de la tabla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: blanco, espacios, mysql, select
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 01:31.