Php & mysql: se conecta a La BD, pero no Inserta datos [solucionado]

Iniciado por ~V, 3 Diciembre 2009, 20:42 PM

0 Miembros y 1 Visitante están viendo este tema.

raul338

Le hiciste caso a todos menos a mi  :-X  :¬¬ :-[ (jajaja es broma)


haz como te dije usa mysql_error

Código (php,4) [Seleccionar]
if ($Resultado)
       echo "<br><b>Datos guardados</b> $NOMBRE_PRODUCTO, $CANTIDAD_PRODUCTO, $FECHA_ELABORACION";
    else
        echo "Error ".mysql_errno($conex) . ": " . mysql_error($conex);


y muestras el error que te dio  ;)

~V

jeje  :silbar:

ok, me dio esto :

CitarError 1054: Unknown column 'FECHA_ELABORACION' in 'field list'

raul338

A simple vista el error es de que te equivocaste de nombre de columna

Código (oracle8) [Seleccionar]
INSERT INTO b2_productos (NOMBRE_PRODUCTO, CANTIDAD_PRODUCTO, FECHA_ELABORACION) VALUES ('$NOMBRE_PRODUCTO', '$CANTIDAD_PRODUCTO', '$FECHA_ELABORACION');

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  ;)

~V

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

CitarError 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
CitarError 1062: Duplicate entry '0' for key 1



<?
$conex = @mysql_connect ("localhost","root","miclave1")

               or die ("No se pudo realizar la conexión  ");

mysql_select_db ("nph",$conex);

$NOMBRE_PRODUCTO=$HTTP_POST_VARS['NOMBRE_PRODUCTO'];
$CANTIDAD_PRODUCTO =$HTTP_POST_VARS['CANTIDAD_PRODUCTO'];



//comprobamos que los valores no sean vacios  o incorrectos en tipo

if (!(empty ($NOMBRE_PRODUCTO)) && !(empty($CANTIDAD_PRODUCTO))    ){

$IngresaDatos = "INSERT INTO b2__productos (NOMBRE_PRODUCTO, CANTIDAD_PRODUCTO) VALUES ('$NOMBRE_PRODUCTO', '$CANTIDAD_PRODUCTO');";

     $Resultado = mysql_query ($IngresaDatos, $conex);
   

if ($Resultado)
       echo "<br><b>Datos guardados</b> $NOMBRE_PRODUCTO, $CANTIDAD_PRODUCTO";
    else
       echo "Error ".mysql_errno($conex) . ": " . mysql_error($conex);


    }
?>




PD: como les sale en colores el codigo, yo le pongo codigo [   /  code]  (con espacio pa q no qede mal..:/

Otra consulta: el FECHA__ELABORACION, la tengo en  varchar 20 ,  varchar sera el problema? :

[u]nsigned

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


No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Skeletron

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 ;)

[u]nsigned

En este caso key es clave, no tecla Google Traductor owned  :xD

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

~V

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 : )


Skeletron

fijate en el phpmyadmin
que en esa tabla, seguramente tienes un "INDICE" UNIQUE en alguna columna...
eliminalo..

raul338

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)