Título: Php & mysql: se conecta a La BD, pero no Inserta datos [solucionado] Publicado por: ~V en 3 Diciembre 2009, 20:42 pm Citar Bueno la solucion va en fijarse bien en como esta escrita la tabla , ya que yo tenia 1 tabla mal. al borrarla (sacarla del codigo), me funciono bien. Luego me percate mi BD no tenia auto_increment. (esto como otra duda que aproveche de preuntar en el hilo. Buenas!, los molesto , pero me salta una duda, eh tratado de conectar con Dreamviewer a traves de php, a mi base de datos. (tengo conectado DW, a la base de datos, uso Appserv.) Al momento de: insertar los datos en el formulario y enviarlos, en el codigo php, me dice que debo completar los datos (el ELSE que le di yo). Osea se coencta a la base de datos ( porque probe cambiando la clave y me dio el or die, error .... ) , pero no hace el primer condicional. GRACIAS :D _________________ _________________ Mi formulario esta asi: Citar <div align="center">Nombre Producto <input name="NOMBRE_PRODUCTO" type="text" id="NOMBRE_PRODUCTO" size="20" maxlength="15" /> </div> </label> <p align="center"> <label>Cantidad</label> <input name="CANTIDAD_PRODUCTO" type="text" id="CANTIDAD_PRODUCTO" size="20" maxlength="3" /> </p> <p align="center">Fecha de Elaboracion <label> <input name="FECHA_ELABORACION" type="text" id="FECHA_ELABORACION" size="20" maxlength="20" /> </label> </p> <table width="391" border="0" align="center"> <tr> <td><input name="cleanform" type="reset" id="cleanform" value="limpiar" /></td> <td> <div align="left"> <input name="send" type="submit" id="send" value="Enviar" /> </div></td></tr> </table> FOTO DEL FORM (http://img260.imageshack.us/img260/8562/fomr.jpg) MY codigo php Citar <? $conex = @mysql_connect ("localhost","root","miclave1") or die ("No se pudo realizar la conexión "); mysql_select_db ("nph"); $NOMBRE_PRODUCTO=$HTTP_POST_VARS['NOMBRE_PRODUCTO']; $CANTIDAD_PRODUCTO =$HTTP_POST_VARS['CANTIDAD_PRODUCTO']; $FECHA_ELABORACION= $HTTP_POST_VARS['FECHA_ELABORACION']; //comprobamos que los valores no sean vacios o incorrectos en tipo if (!(empty ($name)) && !(empty($product)) && !(empty($nameprov)) ){ $IngresaDatos = "INSERT INTO b2_productos VALUES ('$NOMBRE_PRODUCTO', '$CANTIDAD_PRODUCTO', '$FECHA_ELABORACION');"; $Resultado = mysql_query ($IngresaDatos, $conex); if ($Resultado) echo "<br><b>Datos guardados</b> $NOMBRE_PRODUCTO, $CANTIDAD_PRODUCTO, $FECHA_ELABORACION"; } else { echo "<b>Debe Completar todos los campos</b>"; } //liberamos recursos y cerramos la conexión mysql_close($conex) ; ?> foto: php (http://img143.imageshack.us/img143/9315/phpc.jpg) http://img143.imageshack.us/img143/9315/phpc.jpg FOTO FORMULARIO el skin (http://img260.imageshack.us/img260/8177/ff2m.jpg) Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: raul338 en 3 Diciembre 2009, 20:53 pm Código
mi gran pregunta es: ¿Por qué comparas $name $product y $nameprov cuando estas asignando valores a estas variables $NOMBRE_PRODUCTO, $CANTIDAD_PRODUCTO, $FECHA_ELABORACION ??? Deberias comparar estas ultimas .... supongo yo... o sea..que el condicional quedaria asi if (!(empty ($NOMBRE_PRODUCTO)) && !(empty($CANTIDAD_PRODUCTO)) && !(empty($FECHA_ELABORACION )) ){ Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: ~V en 3 Diciembre 2009, 21:13 pm Estimado: raul338
Claro tienes razon, en un transcurso al estar intentando algunas posibles soluciones, sem e paso por alto, ya que antes lo tenia con esas variables. El hecho, es que ahora al cambiar ahora por if (!(empty ($NOMBRE_PRODUCTO)) && !(empty($CANTIDAD_PRODUCTO)) && !(empty($FECHA_ELABORACION )) ){ y ejecutar; me sale una pagina en blanco. siendo que me deberia salir el citado: Código: if ($Resultado) Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: raul338 en 3 Diciembre 2009, 23:09 pm Puedes obtener informacion del error con la funcion mysql_error (http://php.net/manual/en/function.mysql-error.php (http://php.net/manual/en/function.mysql-error.php))
quedandote Código
Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: Castg! en 3 Diciembre 2009, 23:24 pm como te va? me parece que tu error esta en esta sentencia:
Código
trata de poner: mysql_select_db ("nph", $conex); porq sino no le indicas de donde saca esa base de datos, es como que digas copiame la imagen perro.jpg, pero de donde la sacas? de tu pagina, la de un fotolog? se entiende? Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: [u]nsigned en 4 Diciembre 2009, 00:44 am trata de poner: mysql_select_db ("nph", $conex); porq sino no le indicas de donde saca esa base de datos, es como que digas copiame la imagen perro.jpg, pero de donde la sacas? de tu pagina, la de un fotolog? se entiende? No es necesario si solo usa una conexión, si mysql_select_db no recibe el parametro de un link abierto a una BB.DD toma el ultimo que se alla abierto, y en este caso sera el unico.. Creo que el error es este: Código
En esa sentencia SQL no estás indicando en que campo de la tabla va cada variable. No has indicado la estructura de tu tabla b2_productos, pero deberia ser algo asi: Código
Suponiendo que así se llamen los campos en tu tabla..me explico? ;D Saludos Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: Skeletron en 4 Diciembre 2009, 16:14 pm (1), creo que no es necesario poner esos datos al comienzo cuando los colocas a todos los de la tabla y en el orden predeterminado (no estoy seguro de lo que digo)
Porque no copias y pegar nuevamente como ha quedado por ahora el codigo, y donde sigue el error.. Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: raul338 en 4 Diciembre 2009, 23:19 pm (1), creo que no es necesario poner esos datos al comienzo cuando los colocas a todos los de la tabla y en el orden predeterminado (no estoy seguro de lo que digo) No creas, No es necesario poner todas las columnas cuando las vas a completar Todas. Pero aca el problema es que no sabemos si el completa todas las columnas o no (se entiende no?) ;) No contesto mas el tipo, habria que esperarlo Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: Skeletron en 4 Diciembre 2009, 23:34 pm Debe haberlo solucionado.. y dejó el tema por olvidado..
Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: ~V en 5 Diciembre 2009, 16:52 pm Disculpen por no haber contestado.
Leyendo sus consejos , eh probado con lo que dice : castg", y no me produce niun cambio, todavía me sale en blanco la pagina, lo mismo con lo que me pone (1), Pero leyendo, sus comentarios, Les digo (disculpen mi ignorancia), Tengo una tabla llamada b2__productos (ya me percate que tenia dos Guiones bajos, pero corregi e igual me da el error). Esta Tabla tiene varias columnas. En este ejemplo solo queria llenar algunas de ellas... y por ende no estan en orden. LO QUE TENGO: (TABLA): b2__productos (Columnas) CANTIDAD_PRODUCTO (Columnas) CARACTERISTICAS (Columnas) CODIGO_PRODUCTO (Columnas) FECHA_ELABORACION (Columnas) MARCA_PRODUCTO (Columnas) NOMBRE_PRODUCTO (Columnas) PRECIO_PRODUCTO entre otras... Entonces si me dicen! (lo confirman) que debe ser en orden pues , no tengo prpoblema en hacer otra mejor pensada, ya que estoy aprendiendo. Bien Aqui un video con lo que me pasa: * tengo appserv, al subirlo lo hago al servidor de prueba. * No se aprecia tan claro...:/ , pero la idea vale. dejo foto abajo. ymfHBB45UHM IMG: CODIGO: (http://img704.imageshack.us/img704/517/81756309.jpg) http://img704.imageshack.us/img704/517/81756309.jpg GRACIAS por VER EL TEMA :) Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: raul338 en 5 Diciembre 2009, 16:58 pm Le hiciste caso a todos menos a mi :-X :¬¬ :-[ (jajaja es broma)
haz como te dije usa mysql_error Código
y muestras el error que te dio ;) Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: ~V en 5 Diciembre 2009, 20:27 pm jeje :silbar:
ok, me dio esto : Citar Error 1054: Unknown column 'FECHA_ELABORACION' in 'field list' Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: raul338 en 5 Diciembre 2009, 20:33 pm A simple vista el error es de que te equivocaste de nombre de columna
Código
Pero....viendo el video, la fecha la pones como "3 dic 2008", y no es asi, el formato que tienes que poner la fecha es AAAA-MM-DD (2008-12-3) Busca en google y hay muchas funciones para convertir fechas ;) Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: ~V en 5 Diciembre 2009, 22:03 pm amm, bueno, sabes... Realize lo siguiente
Elimine la columna FECHA_ELABORACION del codigo. y Probe con las oras 2 restantes... y me ingreso. funciono!! ya, luego vuelvo a probar (si con las dos columnas nada mas), y me sale el siguiente error Citar Error 1062: Duplicate entry '0' for key 1 No puedo volver a ingresar... : ( *revise en localhost phpmyadmin, y si esta ingresada... _______________________ _______________________ Ya pero entonces la columna FECHA__ELABORACION, me doy cuenta de lo siguiente: yo la tenia con 1 guion Bajo, y eran 2, pues Lo corrijo!... dejo el code como deberia ser... y me arroja en blanco la pagina... Igual tengo pensado Crear otra BD, mas simple en los nombres :s, __________________________ __________________ ___________________________ Codigo si funciona, pero sin la columna FECHA__ELABORACION, con el error Citar Error 1062: Duplicate entry '0' for key 1 Código:
PD: como les sale en colores el codigo, yo le pongo codigo Código: [ / code] (con espacio pa q no qede mal..:/ Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: [u]nsigned en 5 Diciembre 2009, 22:14 pm Eso es porque a una columna PRIMARY_KEY (o UNIQUE) le estas metiendo dos veces el mismo valor en dos registos diferentes.
Si se trata de la columna ID deberias dehjarla como AUTO_INCREMENT y que SQL se encargue de meterle el valor correspondiente. Si se trata de un campo que necesariamente necesitas meter al menos una vez un valor duplicado (ya existente en otro registro -fila-) no lo pongas como PRIMARY_KEY ni como UNIQUE Saludos Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: Skeletron en 5 Diciembre 2009, 23:35 pm Pero amigo... mira.. tu tienes que aprender algo:
http://translate.google.com.ar/?hl=es# Si entras a esa web, el 90% de tus problemas se solucionan.. en programacion.. te lo juro.. Entras ahí y colocas: Duplicate entry '0' for key 1 y veras que te traduce a: Entrada duplicada '0 'para la tecla 1 Entrada Duplicada... es obvio que tienes en la base de datos, una "entrada" o "registro" con el mismo "ID" o algun dato que el que quieres ingresar.. y no se admiten repetidos.. En serio amigo.. agrega esa web a tus MARCADORES en firefox.. es gran ayuda ;) Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: [u]nsigned en 6 Diciembre 2009, 00:18 am En este caso key es clave, no tecla Google Traductor owned :xD
Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: ~V en 6 Diciembre 2009, 01:49 am DAle, si habia puesto el error en google, y si tengo el traductor .
La consulta es, hay forma de modificarlo en phpmyadmin? o en el script... como : (. bueno igual debo crear una BD mejor planteada. esto me a servido de mucha experiencia. gracias a los que an respoondido : ) Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: Skeletron en 6 Diciembre 2009, 02:15 am fijate en el phpmyadmin
que en esa tabla, seguramente tienes un "INDICE" UNIQUE en alguna columna... eliminalo.. Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos Publicado por: raul338 en 6 Diciembre 2009, 02:32 am mira si tenes una clave primaria (representada por una llave) en una columna que no es numerica, sacala ya y crea otra columna que sea "id" le pones integer, primary key (la llavecita) y le marcas "AUTO_INCREMENT"
Si ya tenes una columna integer que te sirva de contador, agregale lo que le falta (de lo que dije arriba) Título: Re: Php & mysql: se conecta a La BD, pero no Inserta datos [solucionado] Publicado por: ~V en 6 Diciembre 2009, 02:50 am Wena :) Skeletron
si hay me fije, estaban , al tratar de eliminarla o agregarle auto_increment no me dejaba D: Vale: raul338 Lo hice , y ahora puedo ingresar varios productos a la ves, gracias.! Ahora tratare de hacer un mejor trabajo, mas ordeando D: , vale por responderme. ; D : P vere como me va ;D PUEDEN CERRAR: eh aprendido, cualquier otra duda, si no logro averiguar ppreguntare de nuevo. gracias |