Foros del Web » Programando para Internet » PHP »

MySql solo muestra palabras antes de espacios en inputbox

Estas en el tema de MySql solo muestra palabras antes de espacios en inputbox en el foro de PHP en Foros del Web. Muy buenos días gente, aqui ando con un dilemita que no logre resolver tras muchas horas de teclear :( La hago lo mas corta que ...
  #1 (permalink)  
Antiguo 26/09/2012, 09:14
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta MySql solo muestra palabras antes de espacios en inputbox

Muy buenos días gente, aqui ando con un dilemita que no logre resolver tras muchas horas de teclear :(

La hago lo mas corta que pueda, tengo una tabla que guarda datos con tildes y espacios sin problemas.
Luego tengo una hoja en php con unos inputbox que los muestra sin problemas, es decir los acentos.
Ahora..... cuando el dato que contiene son dos palabras separadas por un espacio, solo me muestra en el imput la primer palabra.

EJ: Si en la tabla dice Ciudad Vieja, en el inputbox me muestra solo ciudad, ya confirme que en la tabla esta bien guardado como Ciudad Vieja.
Lo raro es que las palabras con acsentos me las muestra bien, solo tengo problemas con los espacios :(

les pego el codigo que tengo

Cita:
Iniciado por kapi
<?php
//en numero del registro en la tabla
$n= $_GET['n'];
//los datos de la conexion
include ("conexion.php");

//busco el registro n en la tabla
$result=mysql_db_query($db_name,"select * from farmacias where n=$n");

//dibujo la tabla y listo los resultados
while ($row=mysql_fetch_array($result))
{
?>
<div align=center>
<table border=0>
<tr>
<form name=agregar action='editar.php' method='POST'>
<input type='hidden' name ='accion' value='editar'>
<td>Localidad</td>
<td><input type="text" name="localidad" value=<?php echo $row[localidad]; ?>></td>
</tr>
  #2 (permalink)  
Antiguo 26/09/2012, 09:31
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 8 meses
Puntos: 192
Respuesta: MySql solo muestra palabras antes de espacios en inputbox

Mmm... Probá usando:
Código PHP:
Ver original
  1. $result=mysql_query("select * from farmacias where n=$n");

En lugar de:
Código PHP:
Ver original
  1. $result=mysql_db_query($db_name,"select * from farmacias where n=$n");

Ya que mysql_db_query() está descontinuada y obsoleta. A lo mejor sea eso.

Otra cosa que podés hacer para depurar es esto:
Código PHP:
Ver original
  1. while ($row=mysql_fetch_array($result))
  2. {
  3.     print_r($row);
  4. }
así ves qué tiene cada array $row realmente.

Por último, es: $row["localidad"] y no $row[localidad].

Empezá por ahí y fijate qué encontrás.
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 26/09/2012, 09:39
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: MySql solo muestra palabras antes de espacios en inputbox

Primero que nada muchas gracias por ayudarme y con esa velocidad :)

Use la primer alternativa y si bien sigue mostrándome la primera palabra nada mas por lo menos me sirve para actualizarme y escribir un poco menos :).

El resultado del comando print me da lo siguiente

Array ( [0] => 6 [n] => 6 [1] => San Roque [nombre] => San Roque [2] => Montevideo [depto] => Montevideo [3] => Ciudad Vieja [localidad] => Ciudad Vieja [4] => Sarandí 667 [direccion] => Sarandí 667 [5] => 2916 2962 [telefono1] => 2916 2962 [6] => [telefono2] => )

Por lo que veo los datos están bien guardados y los trae sin problemas, el tema esta cuando los imprimo dentro de la tabla.

Cambie $row[localidad] y no $row["localidad"] pero sigue igual :( (no funciona)

En todos los cuadros me hace lo mismo, telefono nombre direccion etc.
Gracias de nuevo por la ayuda.
  #4 (permalink)  
Antiguo 26/09/2012, 09:41
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 8 meses
Puntos: 192
Respuesta: MySql solo muestra palabras antes de espacios en inputbox

Bueno ya que estamos, hacé una última cosa. Mostrame el HTML que te genera. O sea, entrá a esa página y copía el código fuente HTML del Chrome, FF o el que uses.
__________________
nahueljose.com.ar
  #5 (permalink)  
Antiguo 26/09/2012, 10:01
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: MySql solo muestra palabras antes de espacios en inputbox

Cita:
Iniciado por Naahuel Ver Mensaje
Bueno ya que estamos, hacé una última cosa. Mostrame el HTML que te genera. O sea, entrá a esa página y copía el código fuente HTML del Chrome, FF o el que uses.
Uso Chrome, es lo que dice Herramientas > Ver codigo fuente?

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>MPG</title>
</head>
<div align=center>
<body>

<div align=center>
<table border=1>
<tr><td colspan=3 align=center>Registro Numero 6</td></tr>
<tr>
<form name=agregar action='editar.php' method='POST'>
<input type='hidden' name ='accion' value='editar'>
<td>Localidad</td><td><input type="text" name="localidad" maxlength="30" size="20" onKeyDown="cuental()" STYLE="text-align:center" value=Ciudad Vieja></td>
<td><input disabled="disabled" type="text" name=localidadc size=2 maxlength="2" STYLE="text-align:center" value=31></td>
</tr>
<tr>
<td>Nombre </td><td><input type="text" name="nombre" maxlength="30" size="20" onKeyDown="cuentan()" STYLE="text-align:center" value=San Roque"></td>
<td><input disabled="disabled" type="text" name=nombrec size=2 maxlength="2" STYLE="text-align:center" value=31></td> 
</tr> 
</tr>
<tr>
<td>Telefono 1 </td><td><input type="text" name="telefono1" maxlength="30" size="20" onKeyDown="cuentat1()" STYLE="text-align:center" value=2916 2962></td
><td><input disabled="disabled" type="text" name=telefono1c size=2 maxlength="2" STYLE="text-align:center" value=31></td> 
</tr>
<tr>
<td>Telefono 2 </td><td><input type="text" name="telefono2" maxlength="30" size="20" onKeyDown="cuentat2()" STYLE="text-align:center" value=></td>
<td><input disabled="disabled" type="text" name=telefono2c size=2 maxlength="2" STYLE="text-align:center" value=31></td> 
</tr>
<tr>
<td>Dirección</td><td><input type="text" name="direccion" maxlength="30" size="20" onKeyDown="cuentad()" STYLE="text-align:center" value=Sarandí 667></td>
<td><input disabled="disabled" type="text" name=direccionc size=2 maxlength="4" STYLE="text-align:center" value=31></td> 
</tr>
<tr>
<td>Departamento</td>
<td colspan="2" align=center><select STYLE="text-align:center"  name="depto"  style='width:158px; height:25px'">
<option value=Montevideo>Montevideo<option value="Artigas">Artigas
<option value="Canelones">Canelones
<option value="Cerro Largo">Cerro Largo
<option value="Colonia">Colonia
<option value="Durazno">Durazno
<option value="Flores">Flores
<option value="Florida">Florida
<option value="Lavalleja">Lavalleja
<option value="Maldonado">Maldonado
<option value="Montevideo">Montevideo
<option value="Paysandu">Paysandu
<option value="Rio Negro">Rio Negro
<option value="Rivera">Rivera
<option value="Rocha">Rocha
<option value="Salto">Salto
<option value="San Jose">San Jose
<option value="Soriano">Soriano
<option value="Tacuarembo">Tacuarembo
<option value="Treinta y Tres">Treinta y Tres
</select></td></tr>
<br>
<tr><td colspan="3" align=center>
<input type="submit" name="Actualizar" value ="Actualizar" style='width:100px; height:25px'>
</form>
<form name=accion action='index.php' method='POST'>
<input type="submit" name="Cancelar" value ="Cancelar" style='width:100px; height:25px'></td>
</tr>
</table>
</form>
</div>
</body> 
  #6 (permalink)  
Antiguo 26/09/2012, 10:04
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 11 meses
Puntos: 35
Respuesta: MySql solo muestra palabras antes de espacios en inputbox

el maxlengh de los input no te estara afectando?
q tan largas son las palabras...
  #7 (permalink)  
Antiguo 26/09/2012, 10:07
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: MySql solo muestra palabras antes de espacios en inputbox

Cita:
Iniciado por maxpower2008 Ver Mensaje
el maxlengh de los input no te estara afectando?
q tan largas son las palabras...
probé hacer un nuevo input arriba sin nada mas que lo esencial, fuera de una tabla y tampoco me carga las palabras separadas.

Ciudad Vieja (12 caracteres, ese es el largo)
  #8 (permalink)  
Antiguo 26/09/2012, 10:08
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 8 meses
Puntos: 192
Respuesta: MySql solo muestra palabras antes de espacios en inputbox

Ahh, pff. Qué tarado que soy. No lo ví. El problema es que no usás comillas en el atributo!

En HTML, está permitido dar un valor de un atributo sin comillas, siempre que sea una sola palabra.

O sea, se corrige añadiendo comillas:

Código PHP:
Ver original
  1. <input type="text" name="localidad" value="<?php echo $row[localidad]; ?>">

Se entiende?

El HTML generado tiene muchos problemas además, como ser etiquetas sin cerrar (todas esas option) y anidación incorrecta. O sea, en lugar de estar anidado de esta forma:

Código HTML:
Ver original
  1.     <form>
  2.         ...
  3.     </form>

Lo tenés así:
Código HTML:
Ver original
  1.     <form>
  2.         ...
  3.     </form>

Esto puede darte problemas y dolores de cabeza con estilos, layout, etc. Además de que no es correcto.
__________________
nahueljose.com.ar
  #9 (permalink)  
Antiguo 24/10/2012, 17:34
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: MySql solo muestra palabras antes de espacios en inputbox

Si entiendo y no lo sabia, pensé que dibujar las tablas y ejecutar los forms eran cosas que hacia separado.
Con respecto a las comillas en los atributos se me complica un poco y a veces no se si van simples o dobles. Pero pude ver que no puse varias comillas.

Todo lo hago de autodidacta así que no se rían :)

Muchas Gracias

Etiquetas: espacios, muestra, mysql, palabras, registro, sql, tabla
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 14:05.