Foros del Web » Programando para Internet » PHP »

Problema update PHP

Estas en el tema de Problema update PHP en el foro de PHP en Foros del Web. lanzo esta sentencia: UPDATE inmueble SET `direccion`= 'avenida generalisimo', `provincia`= '08', `poblacion`= '', `habitaciones`= '2', `superficie`= '275', `banyos`= '3', `precio`= '275000', `tipo`= 'OFICINA', ` estado`= ...
  #1 (permalink)  
Antiguo 17/09/2010, 10:47
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Problema update PHP

lanzo esta sentencia:

UPDATE inmueble
SET `direccion`= 'avenida generalisimo',
`provincia`= '08',
`poblacion`= '',
`habitaciones`= '2',
`superficie`= '275',
`banyos`= '3',
`precio`= '275000',
`tipo`= 'OFICINA', `
estado`= 'Alquilar',
`comentario`= 'En ñññññññññññññññññññññññññ'

WHERE referencia='32423237'




cuando lo hago desde mi archivo.php el campo comentario se me corta en la primera Ñ al enviarlo a la base de datos.



En cambio cuando voy directamente a la Base de datos e inserto la misma sentencia me la hace bien.


sabeis que peude estar fallando? pk manualmente en l abase de datos me la coge y por php no?
  #2 (permalink)  
Antiguo 17/09/2010, 11:15
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Problema update PHP

Postea tu codigo
  #3 (permalink)  
Antiguo 17/09/2010, 11:30
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema update PHP

Cita:
Iniciado por rickyper Ver Mensaje
Postea tu codigo
no tiene mucho secreto eh....


Código PHP:
Ver original
  1. $txt= $_POST[comentario];
  2.  
  3.  
  4. $comen= $txt;
  5. $precio= ereg_replace("[^A-Za-z0-9]", "",$_POST[precio]);
  6.    
  7.  
  8. $sql="
  9. UPDATE inmueble
  10. SET `direccion`=  '$_POST[direccion]',
  11. `provincia`= '$_POST[provinciaList]',
  12. `poblacion`= '$_POST[localidadList]',
  13. `habitaciones`= '$_POST[habitaciones]',
  14. `superficie`= '$_POST[superficie]',
  15. `banyos`= '$_POST[banyos]',
  16. `precio`= '$precio',
  17. `tipo`= '$_POST[tipo]',
  18. `estado`= '$_POST[estado]',
  19. `comentario`= '$comen'
  20. WHERE referencia='$_POST[referencia]'
  21. ";
  22.  
  23. echo $sql;
  24.  
  25. if (!mysql_query($sql,$con))
  26.  
  27.   {
  28.  
  29.   die('Error: ' . mysql_error());
  30.  
  31.   }

Lo que pasa,que la cadena me la corta al updatear.
  #4 (permalink)  
Antiguo 17/09/2010, 11:35
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Problema update PHP

Entonces es problema de codificación...Prueba a poner la base de datos en codificación "latin_spanish" o "iso-8859-1"
  #5 (permalink)  
Antiguo 17/09/2010, 11:37
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema update PHP

pero al hacer el update manual la base de datos me lo coge.
  #6 (permalink)  
Antiguo 17/09/2010, 11:39
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema update PHP

en el archivo de conexion he añadido esto: mysql_query("SET NAMES 'utf8'");


no se si sera lo que me haga petar todo.
  #7 (permalink)  
Antiguo 17/09/2010, 11:39
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Problema update PHP

Esta raro eso que se como un caracter, revisa si le haz puesto un tamaño maximo a tu textarea, me imagino que tienes un textarea para tus comentarios.
  #8 (permalink)  
Antiguo 17/09/2010, 11:40
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Problema update PHP

mysql_query("SET NAMES 'utf8'");
prueba quitandoselo...
  #9 (permalink)  
Antiguo 17/09/2010, 11:42
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema update PHP

claro claro, tengo un text area y grande. Cuando le escribo los comentarios sean del tamaño que sea, a la que ve un caracter raro "ñ" o tildes corta la cadena.

No me rallaria mucho ,si no fuese que al introducir manualmente ese sentencia Sql (con ñ) me la guarda bien en la bdd.
  #10 (permalink)  
Antiguo 17/09/2010, 11:47
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Problema update PHP

Si con lo que te dije no te funciona prueba en poner en el meta:
Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-10646" />
  #11 (permalink)  
Antiguo 17/09/2010, 11:49
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema update PHP

si le quito el set names ni me muestra el campo en el formulario de edicion.
  #12 (permalink)  
Antiguo 17/09/2010, 11:50
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema update PHP

ese meta, lo pongo en el archivo que envia los datos del formulario o en el que lo recive y hace el update?
  #13 (permalink)  
Antiguo 17/09/2010, 11:56
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Problema update PHP

recurda que tienes que tener una estructura como esta:
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <title>titulo</title>
  5. </head>
  6. --- Aqui tu formulario---
  7. </body>
  8. </html>
Si no funciona asi le cambias el meta a:
Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-10646" />
  #14 (permalink)  
Antiguo 17/09/2010, 11:57
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Problema update PHP

Ponlo en ambos.
  #15 (permalink)  
Antiguo 17/09/2010, 12:06
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Respuesta: Problema update PHP

1.- supongo que lo estas pasando por get intentalo con post, y
2.- cuidado con el ereg_replace ya esta obsoleto ahora se usa preg_replace.
saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #16 (permalink)  
Antiguo 17/09/2010, 12:20
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema update PHP

y eso influye en el "mysql_query($sql,$con "??????????

pporque a mi el texto me lo recoge bien en la pagina que envia los datos. El problema esta al enviarlo a la base de datos, que corta el string del sql que previament eme pint apor pantalla esto:


UPDATE inmueble
SET `direccion`= 'avenida generalisimo',
`provincia`= '08',
`poblacion`= '',
`habitaciones`= '2',
`superficie`= '275',
`banyos`= '3',
`precio`= '275000',
`tipo`= 'OFICINA', `
estado`= 'Alquilar',
`comentario`= 'En ñññññññññññññññññññññññññ'

WHERE referencia='32423237'
  #17 (permalink)  
Antiguo 17/09/2010, 12:20
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema update PHP

Cita:
Iniciado por eits Ver Mensaje
1.- supongo que lo estas pasando por get intentalo con post, y
2.- cuidado con el ereg_replace ya esta obsoleto ahora se usa preg_replace.
saludos
cambiado el preg replace. gracias!
  #18 (permalink)  
Antiguo 17/09/2010, 12:22
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema update PHP

parece un expediente X!
  #19 (permalink)  
Antiguo 17/09/2010, 12:28
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Respuesta: Problema update PHP

cual es la estructura de tu tabla???
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #20 (permalink)  
Antiguo 17/09/2010, 12:31
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Problema update PHP

Haz un:
Código MySQL:
Ver original
  1. show variables;
  #21 (permalink)  
Antiguo 17/09/2010, 12:48
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Problema update PHP

Chequeate estas web:
http://e-israel.mx/?p=7
http://jynus.com/blog/2009/05/mysql-...sos-encodings/
  #22 (permalink)  
Antiguo 17/09/2010, 12:48
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema update PHP

Cita:
Iniciado por eits Ver Mensaje
cual es la estructura de tu tabla???
lo normal, pero es loq eu te digo, cuando copio la sentencia sql con Ñ en la base de datos directmaente me lo guarda bien.


Ahor apongo el show variables (pero bueno, lo que os he psado es lo que pinta el echo del sql.
  #23 (permalink)  
Antiguo 17/09/2010, 13:45
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema update PHP

lo he arreglado,parecia una tonteria peor dejandolo asi ha funcionado :

Código PHP:
Ver original
  1. <head>
  2.  
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4.    
  5. <!--<link href="style.css" rel="stylesheet" type="text/css">-->
  6.  
  7.  
  8.  
  9.     <title>ESTADO EDICION DE INMUEBLE</title>
  10.  
  11.  
  12.     </head>
  13.  
  14.  
  15.  
  16. <body >
  17.  
  18. <?php
  19.  
  20. $txt= $_POST[comentario];
  21.  
  22. $comen= $txt;
  23. $precio= ereg_replace("[^A-Za-z0-9]", "",$_POST[precio]);
  24.  
  25.  
  26. $sql="
  27. UPDATE inmueble
  28. SET `direccion`=  '$_POST[direccion]',
  29. `provincia`= '$_POST[provinciaList]',
  30. `poblacion`= '$_POST[localidadList]',
  31. `habitaciones`= '$_POST[habitaciones]',
  32. `superficie`= '$_POST[superficie]',
  33. `banyos`= '$_POST[banyos]',
  34. `precio`= '$precio',
  35. `tipo`= '$_POST[tipo]',
  36. `estado`= '$_POST[estado]',
  37. `comentario`= '$txt'
  38. WHERE referencia='$_POST[referencia]'
  39. ";
  40.  
  41. if (!mysql_query($sql,$con))
  42.  
  43.   {
  44.  
  45.   die('Error: ' . mysql_error());
  46.  
  47.   }

PD, el preg replace no me lo hacia bien :(!
  #24 (permalink)  
Antiguo 17/09/2010, 16:13
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Respuesta: Problema update PHP

algo que no me habia fijado es que no estas usando las comillas para identificar las posiciones del array $_POST
Código PHP:
Ver original
  1. $txt= $_POST["comentario"];
  2. $comen= $txt;//esta linea no tiene razón de estar
en cuanto al preg_replace, creo que es mejor usar
Código PHP:
Ver original
  1. $precio = ( is_numeric($_POST["precio"]))?$_POST["precio"]:0;
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: update
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 13:13.