Foros del Web » Programando para Internet » PHP »

error al guardar "int" en tabla php mysql

Estas en el tema de error al guardar "int" en tabla php mysql en el foro de PHP en Foros del Web. Hola a todos, primero que nada gracias a todo aquel que se este tomando el tiempo de leer esta consulta. Tengo hecho un sistema de ...
  #1 (permalink)  
Antiguo 11/09/2012, 14:03
Avatar de Ferdinand1945  
Fecha de Ingreso: noviembre-2010
Ubicación: Estocolmo
Mensajes: 62
Antigüedad: 14 años
Puntos: 1
Pregunta error al guardar "int" en tabla php mysql

Hola a todos, primero que nada gracias a todo aquel que se este tomando el tiempo de leer esta consulta.

Tengo hecho un sistema de registro en php y mysql todo funciona a la perfeccion, guarda los datos, cuando estas registrado accedes a la parte de "usuarios registrados" todo bien, pero hace algo extraño cuando escribis el numero de documento "cedula/ carnet de identidad y codigo postal" esos campos no los guarda bien, guarda una serie de numeros que nada que ver al que uno escribio pero aveces guarda masomenos bien y ademas hay una serie de numeros que repite tmb. aveces.... que esta pasando? Les adjunto mi codigo php que hace esto posible, pienso que no hay nada malo en el php por que lo revise una y otra vez (pero yo soy medio careta ;) )

(los campos en mysql "codigo postal" int(5), atributes (nada), NULL (no), default (none), extra (nada).

y lo mismo para "numero de documento" int (25) y el resto todo igual al anterior).


Código PHP:
 <?php
$submit 
$_POST['submit'];

//form data
$fullname strip_tags($_POST['fullname']);
$adress strip_tags($_POST['adress']);
$postn strip_tags($_POST['postn']);

$personn strip_tags($_POST['personn']);
$email strip_tags($_POST['email']);
$username strip_tags($_POST['username']);

$password strip_tags($_POST['password']);
$repeatpassword strip_tags($_POST['repeatpassword']);
$utbildning strip_tags($_POST['utbildning']);
$date date("Y-m-d");

if (
$submit)
{
 
//chek for existens
 
if ($fullname&&$adress&&$postn&&$personn&&$email&&$username&&$password&&$repeatpassword&&$utbildning)
 {
    if (
$password==$repeatpassword)
    {
     
//chek char of username and fullname
     
       
if (strlen($username)>25||strlen($fullname)>25
        {
         echo 
"<font color='red'>Lengden av anvÔøΩndarnamn eller fullnamn är för långt!</font>";   
            } 
            
            if (
strlen($postn)>6)
            {
                echo 
"<font color='red'>Postnummer är för långt</font>";
                }
             else
             { 
               
//chekiando longitud de password
               
if (strlen($password)>25||strlen($password)<6)  
               {
                echo 
"<font color='red>Password must be between 6 and 25 characters</font>";   
                   }
                   else
                   {
                       
//register the user
                       
                    //open database
                    
                      
$connect mysql_connect("studoch.se.mysql""studoch_se""nz9GMGDF");
                      
mysql_select_db("studoch_se"); //select database
                      
                        
$queryreg mysql_query("INSERT INTO `users`(id, fullname, adress, postn, personn, email, username, password, utbildning, date) VALUES ('','$fullname', '$adress', '$postn', '$personn', '$email', '$username', '$password', '$utbildning', '$date')");  
                        
                         die(
"You have been registred! <a href='index.php'>Return to log in page</a>"); 
                       }
                 
                 } 
        }
        else
         echo 
"<font color='red'>Your passwords do not match!</font>";
    
     }
     else
        echo 
"<font color='red'>Please fill in <b>all</b> fields!</font>";
}

?>
Perdon que las variables y todo eso este en sueco (pero la pagina era para suecos) espero alguien tenga la respuesta a este misterio que me atormeta. Si necesitan algun dato extra o algo que yo me haya olvidado no duden en pedirmelo! Muchas gracias desde ya!!
  #2 (permalink)  
Antiguo 11/09/2012, 14:12
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 9 meses
Puntos: 53
Respuesta: error al guardar "int" en tabla php mysql

intenta insertndo datos directos

Cita:
$queryreg = mysql_query("INSERT INTO `users`(id, fullname, adress, postn, personn, email, username, password, utbildning, date) VALUES ('','nombre', 'direccion', '1231', 'personn', 'email', 'username', 'password', 'utbildning', '2012-12-12')");
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 11/09/2012, 14:30
Avatar de Ferdinand1945  
Fecha de Ingreso: noviembre-2010
Ubicación: Estocolmo
Mensajes: 62
Antigüedad: 14 años
Puntos: 1
Respuesta: error al guardar "int" en tabla php mysql

gracias! voy a intentar a ver que me hace.
  #4 (permalink)  
Antiguo 11/09/2012, 14:47
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 11 meses
Puntos: 35
Respuesta: error al guardar "int" en tabla php mysql

eso suele suceder cuando el tipo de campo es mas pequeño que el valor a guardar.
ejemplo el tipo int soporta un entero de 9 digitos y si vas a guardar un numero de 10 digitos lo guarda mal.
En esos casos se debe utilizar el tipo bigint.
A mi me solia pasar no se si este sera tu problema


mmm int(25) cambialo a bigint(25).
  #5 (permalink)  
Antiguo 12/09/2012, 03:47
Avatar de Ferdinand1945  
Fecha de Ingreso: noviembre-2010
Ubicación: Estocolmo
Mensajes: 62
Antigüedad: 14 años
Puntos: 1
Respuesta: error al guardar "int" en tabla php mysql

Excelente, voy a probar cambiarlo y publico resultados :) y muchas gracias por las respuestas!!
  #6 (permalink)  
Antiguo 12/09/2012, 05:04
Avatar de Ferdinand1945  
Fecha de Ingreso: noviembre-2010
Ubicación: Estocolmo
Mensajes: 62
Antigüedad: 14 años
Puntos: 1
Respuesta: error al guardar "int" en tabla php mysql

Cita:
Iniciado por maxpower2008 Ver Mensaje
eso suele suceder cuando el tipo de campo es mas pequeño que el valor a guardar.
ejemplo el tipo int soporta un entero de 9 digitos y si vas a guardar un numero de 10 digitos lo guarda mal.
En esos casos se debe utilizar el tipo bigint.
A mi me solia pasar no se si este sera tu problema


mmm int(25) cambialo a bigint(25).

Solucionado! Muchas gracias!!! Una salvada de vida y dolores de cabeza!!! Gracias de nuevo!!

Etiquetas: database, int, mysql, 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 22:20.