Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

ayuda a corregir este codigo de alta de regsitro

Estas en el tema de ayuda a corregir este codigo de alta de regsitro en el foro de Bases de Datos General en Foros del Web. hola de antemano muchas gracias realizo un proyecto en php con mysql pero estoy trabado en un error ojala y me puedan ayudar con el ...
  #1 (permalink)  
Antiguo 01/02/2010, 00:07
Avatar de IMDARKSKULL  
Fecha de Ingreso: enero-2010
Ubicación: Veracruz / Mexico
Mensajes: 9
Antigüedad: 14 años, 3 meses
Puntos: 0
ayuda a corregir este codigo de alta de regsitro

hola de antemano muchas gracias

realizo un proyecto en php con mysql pero estoy trabado en un error ojala y me puedan ayudar con el siguiente codigo ya que en la seccion de php no me marca error , pero tampoco me da de alta el registro
<form id="form_177952" class="appnitro" method="post" action="">
<div class="form_description">
<h2>Alta de Escuela Participante</h2>

</div>
<ul >

<li id="li_1" >
<label class="description" for="element_1">Clave de Registro </label>
<div>
<input id="element_1" name="element_1" class="element text medium" type="text" maxlength="255" value=""/>
</div>
</li> <li id="li_2" >
<label class="description" for="element_2">Contraseña maximo 12 caracteres </label>
<div>
<input id="element_2" name="element_2" class="element text medium" type="text" maxlength="255" value=""/>
</div>
</li>

<li class="buttons">
<input type="hidden" name="form_id" value="177952" />

<input id="saveForm" class="button_text" type="submit" name="ENVIAR" value="Enviar solicitud" />

</li>
</ul>
<?php
$clave=$HTTP_POST_VARS['element_1'];
$contra=$HTTP_POST_VARS['element_2'];

mysql_connect("localhost","root","");
$sSQL="insert into escuelas (CLAVE_REGISTRO,CONTRASEÑA) values ('$clave','$contra')";
$result=mysql_db_query("ESCUELAPUBLICA",$sSQL);
?>
</form>

esta es mi base de datos
CREATE TABLE `escuelas`
(
`ID` integer (11) NOT NULL AUTO_INCREMENT ,
`CLAVE_REGISTRO` varchar (250),
`CONTRASEÑA` varchar (250),
`NIVEL` varchar (250),
`NOMBRE` varchar (250),
`DIRECCION` varchar (250),
`TELEFONO` varchar (250),
`PAIS` varchar (250),
`ESTADO / ENTIDAD` varchar (250),
`CIUDAD` varchar (250),
`LOCALIDAD` varchar (250),
PRIMARY KEY (`ID`)
) TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_swedish_ci
  #2 (permalink)  
Antiguo 01/02/2010, 07: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: 16 años, 4 meses
Puntos: 2658
Respuesta: ayuda a corregir este codigo de alta de regsitro

Verifica la estructura de la tabla con algún fornt-end (phpMyAdmin, MySQL Query Browser, Navicat, etc).
Es posible que al crearse la tabla se hayan definido en forma automática los campos como NOT NULL. Esto puede darse porque es común que el instalador de MySQL deje esa condición como valor por default de columnas creadas sin indicación de NULL, y ese es tu caso.
Me explico para mayor caridad: Es habitual que el MySQL quede preconfigurado para ponerle NOT NULL a las columnas de una tabla cuando no se indica expresamente que pueden ser NULL. Y esto lo hace sin que tu te enteres. Verifica la estructura de la tabla en la base.
Luego veremos si el problema no está en el PHP, pero para eso está otro foro (Foro de PHP). Aquí el tema es SQL...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 01/02/2010, 11:17
Avatar de IMDARKSKULL  
Fecha de Ingreso: enero-2010
Ubicación: Veracruz / Mexico
Mensajes: 9
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: ayuda a corregir este codigo de alta de regsitro

GRACIAS POR LA RESPUESTA gnzsoloyo .

YA REVISE SEGUN TUS INDICACIONES Y AUN ASI NO ME CREA LOS NUEVOS REGISTROS, POR CIERTO ESTOY UTILIZANDO DBmanager version 3.2.4
TE MANDO LA ESTRUCTURA DE LA TABLA PARA QUE LE HECHES UN VISTAZO POR QUE NO SE COMO PONER UNA CLAVE PRINCIPAL YA ABUSANDO QUE ANDAS POR AQUI
CREATE TABLE `escuelas`
(
`CLAVE_REGISTRO` varchar (50) NOT NULL,
`CONTRASEÑA` varchar (12),
`NIVEL` varchar (250),
`NOMBRE` varchar (250),
`DIRECCION` varchar (250),
`TELEFONO` varchar (250),
`PAIS` varchar (250),
`ESTADO / ENTIDAD` varchar (250),
`CIUDAD` varchar (250),
`LOCALIDAD` varchar (250)
) TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_swedish_ci
  #4 (permalink)  
Antiguo 01/02/2010, 14:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ayuda a corregir este codigo de alta de regsitro

Mira, la tabla a priori está bien definida:
Código MySQL:
Ver original
  1. CREATE TABLE  `escuelas` (
  2.   `ESCUELA_ID` int(11) NOT NULL auto_increment,
  3.   `CLAVE_REGISTRO` varchar(50) NOT NULL,
  4.   `CONTRASENA` varchar(12) default NOT NULL,
  5.   `NIVEL` varchar(250) default NULL,
  6.   `NOMBRE` varchar(250) default NULL,
  7.   `DIRECCION` varchar(250) default NULL,
  8.   `TELEFONO` varchar(250) default NULL,
  9.   `PAIS` varchar(250) default NULL,
  10.   `ESTADO / ENTIDAD` varchar(250) default NULL,
  11.   `CIUDAD` varchar(250) default NULL,
  12.   `LOCALIDAD` varchar(250) default NULL,
  13.   PRIMARY KEY  (`ESCUELA_ID`)
Si, estás usando una cláusula obsoleta: TYPE, ya que desde la versión 5.0 corresponde usar ENGINE.
Como verás en la sintaxis que te pongo, de esa forma está definido que los campos puedan ser NULL, de modo que no traigan problemas con la inserción. Dejé dos campos cono NOT NULL además de la ID, que asumo son los obligatorios.
Esos dos campos en cuestión, son los que deben ingresar si o si.

Un detalle es que trates de no usar campos cuyos nombres presenten problemas con los nombres: Evita usar letras que no aparezcan en inglés. Eso puede traerte problemas por la interpretación del SQL, el PHP o el HTML.

Si con esta tabla sigues teniendo problemas, entonces tu problema está en el PHP, y allí no te puedo ayudar, entre otras cosas, porque para eso está el foro específico (Foros de PHP), en donde encontrarás mejores respuestas y mayores expertos en el tema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 02/02/2010, 04:54
 
Fecha de Ingreso: enero-2010
Ubicación: Sevilla
Mensajes: 202
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: ayuda a corregir este codigo de alta de regsitro

Prueba a lanzar la misma consulta desde el PHPMyAdmin u otro programa similar a ver cual es el error que te da.
Yo no pondría campos con caracteres raros como Ñ, acentos o '/' porque los motores de BD son muy delicados con esos temas y luego fallan en la intercalación y la ordenación.

Etiquetas: corregir, altas
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 17:26.