Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] guardar "-" en base de datos y ñ

Estas en el tema de guardar "-" en base de datos y ñ en el foro de PHP en Foros del Web. Hola, haciendo un formulario me encontre que al momento de guardar un numero de identificacion por ejemplo: 12345678-9 este queda guardado como 12345669 (me resta ...
  #1 (permalink)  
Antiguo 31/03/2016, 11:31
Avatar de MARKWEB  
Fecha de Ingreso: septiembre-2001
Ubicación: En mi casa
Mensajes: 1.562
Antigüedad: 20 años
Puntos: 0
guardar "-" en base de datos y ñ

Hola, haciendo un formulario me encontre que al momento de guardar un numero de identificacion por ejemplo: 12345678-9 este queda guardado como 12345669 (me resta 9)

tambien el ingreso de esta informacion puede terminar en una letra y al momento de poner la letra me da un error

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in

y en esa linea hago una consulta en codigo php el cual busca si el codigo ya esta registrado si es positivo da un error de que codigo existe, si no hace el ingreso a la bd

el otro problema que tengo es que no me guarda la letra ñ o las con tilde


Código:
CREATE TABLE IF NOT EXISTS `ingreso` (
  `cedula` varchar(11) NOT NULL,
  `edad` int(2) NOT NULL,
  `telefono` varchar(11) NOT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
el cotejeamiento esta en. latin1_swedish_ci


alguna idea de ayuda se agradece
__________________
Un MEJOR AMIGO es como un trébol de 4 hojas, DIFÍCIL DE ENCONTRAR y ES DE BUENA SUERTE TENER UNO

Última edición por MARKWEB; 31/03/2016 a las 11:37 Razón: mas informacion
  #2 (permalink)  
Antiguo 31/03/2016, 12:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 13 años, 10 meses
Puntos: 2658
Respuesta: guardar "-" en base de datos y ñ

Tu problema está a nivel de PHP, no de MySQL.
PHP parece estar haciendo un tratamiento como número de lo que estés recueprando del formulario. La base solo guardará lo que le mandes, y lo que recibe dependerá de lo correctamente construida que esté la query en PHP.

En resumen: No es un problema de la base. Es de PHP, que es donde inicia el inconveniente.

Movido a PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 31/03/2016 a las 12:50
  #3 (permalink)  
Antiguo 31/03/2016, 12:43
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 13 años
Puntos: 175
Respuesta: guardar "-" en base de datos y ñ

bueno.. si es un varchar, no debería tener grandes problemas, te parece si nos muestras el código PHP que te genera la captación de datos y donde haces el update o insert...??
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #4 (permalink)  
Antiguo 31/03/2016, 13:28
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 12 años, 8 meses
Puntos: 11
Respuesta: guardar "-" en base de datos y ñ

Si usas mysql toda la collation de Base de datos y tablas debe ser utf8 - utf8_spanish_ci y en la conexión:
$Conex=new mysqli(.....);
$Conex->set_charset("utf8");

En apache:
[httpd.conf]
AddDefaultCharset utf-8

En php:
[php.ini]
default_charset = "utf-8"
mbstring.internal_encoding=utf-8
mbstring.http_output=UTF-8
mbstring.encoding_translation=On
mbstring.func_overload=0

Por ultimo tus html debe tambien configurar el utf8 con la siguiente linea:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  #5 (permalink)  
Antiguo 31/03/2016, 14:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 6 meses
Puntos: 2534
Respuesta: guardar "-" en base de datos y ñ

Cita:
12345678-9 este queda guardado como 12345669 (me resta 9)
Obviamente estás colocando mal la variable, es decir, sin comillas: lo cual resulta en una operación aritmética.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 01/04/2016, 21:44
Avatar de MARKWEB  
Fecha de Ingreso: septiembre-2001
Ubicación: En mi casa
Mensajes: 1.562
Antigüedad: 20 años
Puntos: 0
Respuesta: guardar "-" en base de datos y ñ

solucione el problema de las ñ y tildes poniendo un script php en el inicio

dejo el codigo aca

Cita:
<?php header('Content-type: text/plain; charset=utf-8'); ?>
lo de la rsta aun no lo soluciono pero ya lo vere mas adelante, agradezco su ayuda
__________________
Un MEJOR AMIGO es como un trébol de 4 hojas, DIFÍCIL DE ENCONTRAR y ES DE BUENA SUERTE TENER UNO
  #7 (permalink)  
Antiguo 02/04/2016, 07:44
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 17 años, 11 meses
Puntos: 154
Respuesta: guardar "-" en base de datos y ñ

Cita:
Iniciado por MARKWEB Ver Mensaje
lo de la rsta aun no lo soluciono pero ya lo vere mas adelante, agradezco su ayuda
Hola MARKWEB,

Como te decía pateketrueke, el problema es que estás tratando mal la variable, ya sea en tu código PHP o en tu campo de la base de datos, para que no te haga la resta, debes tratarlo como string, no como número, es decir, si el problema es en el código, entre comillas y si es en la base de datos, el campo debe ser de tipo string (varchar, por ejemplo).

Espero que te sirva.
  #8 (permalink)  
Antiguo 05/04/2016, 16:56
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 12 años, 8 meses
Puntos: 11
Respuesta: guardar "-" en base de datos y ñ

Con la funcion php header que colocaste soluciona el problema pero no bien, debido a que tienes que poner esa linea en cada uno de tus PHPs. Si lo configuras como te comente arriba en httpd.conf y php.ini no tenienes que hacer eso y todo el php queda configurado en utf8.

Etiquetas: mysql
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 00:47.