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.

~V

CitarBueno 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

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




FOTO FORMULARIO  el skin



raul338

Cita de: ~V en  3 Diciembre 2009, 20:42 PM

Código (php,8,9,10,15) [Seleccionar]
<?
$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)  ;
  ?>


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

~V

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:


     if ($Resultado)
       echo "<br><b>Datos guardados</b> $NOMBRE_PRODUCTO, $CANTIDAD_PRODUCTO, $FECHA_ELABORACION";

raul338

#3
Puedes obtener informacion del error con la funcion mysql_error (http://php.net/manual/en/function.mysql-error.php)

quedandote

Código (php) [Seleccionar]

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


Castg!

como te va? me parece que tu error esta en esta sentencia:
Código (php,6) [Seleccionar]
<?
$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)  ;
  ?>


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?

[u]nsigned

Cita de: castg" en  3 Diciembre 2009, 23:24 PM
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 (php) [Seleccionar]
$IngresaDatos = "INSERT INTO b2_productos VALUES ('$NOMBRE_PRODUCTO', '$CANTIDAD_PRODUCTO', '$FECHA_ELABORACION');"

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 (php) [Seleccionar]
$IngresaDatos = "INSERT INTO b2_productos (NOMBRE_PRODUCTO, CANTIDAD_PRODUCTO, FECHA_ELABORACION) VALUES ('$NOMBRE_PRODUCTO', '$CANTIDAD_PRODUCTO', '$FECHA_ELABORACION');"

Suponiendo que así se llamen los campos en tu tabla..me explico?  ;D

Saludos

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

Skeletron

(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..

raul338

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

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

Skeletron

Debe haberlo solucionado.. y dejó el tema por olvidado..

~V

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.
[youtube=425,350]http://www.youtube.com/watch?v=ymfHBB45UHM [/youtube]

IMG: CODIGO:

http://img704.imageshack.us/img704/517/81756309.jpg


GRACIAS por VER EL TEMA :)