Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2008, 05:19
wanchankein
 
Fecha de Ingreso: enero-2008
Mensajes: 37
Antigüedad: 16 años, 3 meses
Puntos: 0
espacio o   inexistente?

Hola,
tengo una base de datos en mysql, con caracteres Latin1, el caso es que desde un select introduzco un nombre en la BBDD y desde PHP lo introduzco con espacios en formato HTML.
seria algo así

Código PHP:
$user $registro["nombre"]." ".$registro["apellido"]; 
por lo tanto $user tendria el espacio en formato html, aunque en la base de datos aparece bien, con espacio entre nombre y apellido.

el problema viene que intento hacer una consulta mas tarde utilizando como elemento para igualar el nombre del socio y con la funcion concatenar ya que la tabla donde accedo el nombre y el apellido están separados.

Por lo tanto seria así

Código PHP:
SELECT movil email
     FROM foro_users
     WHERE CONCAT
(nombre,' ',apellido) = $user 
El problema es que no encuentra igualdades al haberse grabado ese espacio como  .

Hay alguna manera de incluir   en el concat? ya que si lo pongo entre las comillas qutando el espacio, el resultado seria nombre apellido literalmente y tampoco es igual.

He probado con una funcion en PHP la str_replace() para cambiar los espacios, pero no los encuentra ni con espacio normal ni con   en la funcion.

COMO ESTA GRABADO ESE ESPACIO???

Espero me ayudeis, parece ser que el ESPACIO en la BBDD se haya grabado como si realmente no hubiese ningun espacio pero en cambio el espacio está lo que no se en que codigo. He probado con el str_replace hasta el codigo en ASCII del latin_1 y nadaaaaaa

EDITO: pongo lo que sale para explicarme mejor con el str_replace:
Código PHP:
echo str_replace(' ''-'$user ); //muestra nombre apellido en vez de nombre-apellido
echo str_replace(' ''-'$user ); //muestra nombre apellido en vez de nombre-apellido
echo preg_replace("/s+/","-",$user ); //muestra nombre apellido en vez de nombre-apellido
echo preg_replace('/\s\s+/''-',$user ); //adivina que muestra, XD 
Saludos.