Foros del Web » Programando para Internet » PHP »

limitar la longitud de un campo que entra por un formulario a la bd!

Estas en el tema de limitar la longitud de un campo que entra por un formulario a la bd! en el foro de PHP en Foros del Web. hola foreros y foreras!! cómo estamosss? voy de lleno al problema, je: estoy laburando en un sitio que se articula con bases de datos mysql, ...
  #1 (permalink)  
Antiguo 22/06/2007, 13:58
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
limitar la longitud de un campo que entra por un formulario a la bd!

hola foreros y foreras!! cómo estamosss?

voy de lleno al problema, je: estoy laburando en un sitio que se articula con bases de datos mysql, y en un par de campos de un formulario pido que desarrollen unas respuestas... la duda es qué tipo de campo mysql debo elegir para que allí dentro se ingresen cadenas mas o menos largas (supongamos de unos 500 caracteres). El problema es que hasta el momento vengo utilizando campos del tipo varchar(50), varchar(200), etc, y con esto todo iba muy bien para cadenas menores de 256 caracteres (como he leído por ahí que soportan los varchar)... ahora bien, cómo hago lo mismo para cadenas con un máximo de longitud de 500 caracteres por ejemplo??

probé con el campo de tipo text, pero no me permite marcarle una longitud máxima... existe alguna otra posibilidad que no sea text?? o debo recurrir a verificarlo con php? y de ser así en qué tipo de campo mysql lo guardo?...

la intención es optimizar la base de datos, y es que he leído por ahí (y el sentido común también me lo ha soplado en su momento) que no conviene tener campos de longitud variables... una cosa así: you should try to avoid all variable-length columns!, jeje

bien, esa es la duda, mucha gracias por sus ojos aquí ,
chapulín
  #2 (permalink)  
Antiguo 22/06/2007, 14:03
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 2 meses
Puntos: 4
Re: limitar la longitud de un campo que entra por un formulario a la bd!

Hasta donde yo se tendrias que crearlos como tipo text, y despues mediante la codificacion permites un maximo de 500 caracteres, es cierto, el text te permitira mas que 500 caracteres, pero si no los ocupas tampoco estas ocupando esa memoria, creo..


Saludos :P
__________________
Roberto Osses Elgueta
Senior Web Developer
  #3 (permalink)  
Antiguo 22/06/2007, 14:06
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
Re: limitar la longitud de un campo que entra por un formulario a la bd!

RoKo, heyyy muchas gracias por responder, muy velozzzz lo tuyo che, jaja

Cita:
y despues mediante la codificacion permites un maximo de 500 caracteres,
???, cómo así, cómo logro mediante la codificación definir dicha longitud de caracteres?? , no entiendo viejo...
__________________
chapu
  #4 (permalink)  
Antiguo 22/06/2007, 14:26
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 2 meses
Puntos: 4
Re: limitar la longitud de un campo que entra por un formulario a la bd!

cuando hablaba de codificacion me referia a Programacion xD

Pues tenemos nuestro textarea, que llamara a la funcion de javascript.
Código HTML:
<script type="text/javascript">
var nav4 = window.Event ? true : false;
function ver(evt) {
  var key = nav4 ? evt.which : evt.keyCode; 
  if (document.getElementById('mitexto').value.length >= 500 && key > 13) { return false; }
  return true;
}
</script>
<textarea id="mitexto" rows="7" cols="40" onkeypress="return ver(event);"></textarea> 
Yo prefiero validar con javascript antes que con PHP porque asi evite cargar datos en el servidor con tal vez una consulta que podia solucionar por otro lado

Saludos
__________________
Roberto Osses Elgueta
Senior Web Developer
  #5 (permalink)  
Antiguo 22/06/2007, 14:37
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
Re: limitar la longitud de un campo que entra por un formulario a la bd!

RoKo te pasaste viejooo!!! Mil gracias por la ayuda...

eso me temía que mysql entonces no trabaja con limitaciones en los campos de tipo text... pero si este tipo de campo sólo guarda en memoria lo usado, joya, con javascript (y después si pinta con php, por las dudas de q el js esté desactivado...) verificamos y listo!!

si, con lo de la codificación había entendido por el lado de los charset y los collation y todo ese mambo de latin1_spanish_ci y demáses... jajaja

de nuevo gracias por socorrernos a los más ignorantes cheee,
saludos de mendoza,
chapulín
  #6 (permalink)  
Antiguo 22/06/2007, 14:48
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
Re: limitar la longitud de un campo que entra por un formulario a la bd!

, Me surgió una duda ahora mirando el código de js... ¿qué es key? y por qué mayor que 13??

...
__________________
chapu
  #7 (permalink)  
Antiguo 22/06/2007, 14:55
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 2 meses
Puntos: 4
Re: limitar la longitud de un campo que entra por un formulario a la bd!

No ahi problema chapu

Te cuento:

key esta definido de acuerdo al navegador, ahi navegadores que utilizan el metodo keyCode y otros wich, lo que hacemos es ver cual de los 2 utiliza para recuperar los datos, cada accion sobre el teclado tiene un numero asociado, las acciones como presionar el boton borrar (o backspace) , el suprimir, el boton enter, la barra de espacio, entre otros se encuentran entre el 1 y el 13, si no pusieramos esta condicion al intentar borrar algo del textarea no podriamos hacerlo, porque estariamos en los 500 caracteres. saludos :)
__________________
Roberto Osses Elgueta
Senior Web Developer
  #8 (permalink)  
Antiguo 22/06/2007, 15:03
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
Re: limitar la longitud de un campo que entra por un formulario a la bd!

aprehendido! agradezco muchísimo tu tiempo roko!!!
__________________
chapu
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 04:48.