Foros del Web » Programando para Internet » PHP »

Campo entero de una base de datos

Estas en el tema de Campo entero de una base de datos en el foro de PHP en Foros del Web. Hola a todos Tengo una aplicacion que ingresa datos desde un formulario a un tabla de una base de datos Mysql. Para ello uso dos ...
  #1 (permalink)  
Antiguo 28/11/2012, 15:31
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 8 meses
Puntos: 1
Campo entero de una base de datos

Hola a todos

Tengo una aplicacion que ingresa datos desde un formulario a un tabla de una base de datos Mysql.
Para ello uso dos archivos: el primero un archivo html donde ingreso los datos del cliente como su nombre y su telefono.
El segundo un archivo php que procesa esos datos y lo graba en la table clientes de mi base de datos.

El problema con el campo entero telefono(de tipo int yo lo define en la interface phpMyadmin). Todos los telefonos que ingreso en el formulario no se graba con esos números, sino en su lugar aparece en el campo telefono de la tabla clientes el numero de telefono 2147483647. Este numero apararece para todos los clientes.
No sé porque pasa esto.

El codigo de mi archivo htm es el siguiente:

Cita:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"
>
<html lang="es">
<head>
<title>insertar-mejora.html</title>
<script lenguage="javascript">
function validarentero(valor){
//intento convertir a entero
//si era un entero no le afecta,si no lo era lo intenta convertir
valor=parseInt(valor)
//compruebo si es un valor numérico
if(isNaN(valor)){
//entones(no es numero) devuelvo el valor cadena vacia
return ""
}else{
//En caso contrario(Si era un número) devuelvo el valor
return valor
}
}
function verificar_blanco(){
if(document.form1.nombre.value.length==0){
alert ("No ingreso el campo nombre");
document.form1.nombre.focus()
return 0;
}
else{
if(document.form1.telefono.value.length==0){
alert("no ingreso el campo telefono")
document.form1.telefono.focus();
return 0;
}else{
telefono=document.form1.telefono.value
telefono=validarentero(telefono)
if(telefono==""){
alert("Debe ingresar para el telefono solo números")
document.form1.telefono.focus()
return 0;
}
}
}
//el formulairo se envia
alert("Muchas gracias por enviar el formulario");
document.form1.submit();
}
</script>
</head>
<body>
<div align="center">
<h1>Insertar un registro</h1>
<form name="form1" action= "insertar-mejorado2.php" method="post">
<table align="center" border="1" cellspacing="3">
<tr>
<td><b>Nombre</b></td>
<td><input type="text" name="nombre" size="30" ></td>
</tr>
<tr>
<td><b>Telefono</b></td>
<td><input type ="text" name="telefono" size="10" maxlength="10"></td>
</tr>
<tr>
<td colspan=2 align="center"><input type="button" value="insertar" onclick="verificar_blanco()"></td>
</tr>
</table>
</form>
</div>
</body>
</html>
El código de mi archivo php es el siguiente:

Cita:
<HTML>
<HEAD>
<TITLE>insertar-mejorado.php</TITLE>
</HEAD>
<BODY>
<?php
//Conexion con la base
mysql_connect("localhost","root","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("actualizacion");

//Ejecucion de la sentencia SQL
//$nombre=$_POST["nombre"];
//$telefono=$_POST["telefono"];
$ssql=mysql_query("insert into clientes (nombre,telefono) values ('$_POST[nombre]',$_POST[telefono])");
//preguntamos si la conexión fue exitosa
if($ssql=false){
echo "no se puede conectar con la base de datos";
} else{
?>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div>
</BODY>
<?php
}
?>
Me pueden ayudar. Gracias.
  #2 (permalink)  
Antiguo 28/11/2012, 15:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Campo entero de una base de datos

Quizá una columna tipo INT es demasiado pequeña para un número tan largo, en tu lugar yo usaría una columna tipo VARCHAR, o tal vez usando BIGINT, etc.

Que el teléfono contenga números no implica obligatoriamente que deba almacenarse en una columna tipo INT.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: entero, formulario, html, mysql, registro, sql, tabla, campos
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 10:42.