Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ZedGe en 16 Julio 2012, 10:27 am



Título: Problema Al ingresar datos a Tablas (MYQL)
Publicado por: ZedGe en 16 Julio 2012, 10:27 am
Tengo una pagina basada en PHP y cree una tabla en PHPMYADMIN, tengo un formulario simple, al cargar la pagina me sale este error:

A PHP Error was encountered

Severity: Notice

Message: Undefined index: codigo

Filename: views/formulario.php

Line Number: 39


aquí esta el código y no se por que pasa eso :S


Código:
<html> 
<head>
   <title>Ejemplo de PHP</title>
</head>
<body>

<FORM method="post">
<TABLE>
<TR>
   <TD>Codigo:</TD>
   <TD><INPUT TYPE="text" NAME="codigo" SIZE="20" MAXLENGTH="30"></TD>
</TR>
</TABLE>
<INPUT TYPE="submit" VALUE="Grabar">
</FORM>



<?php
function Conectarse()
{
   if (!($link=mysql_connect("localhost","root","")))
   {
      echo "Error conectando a la base de datos.";
      exit();
   }
   if (!mysql_select_db("mydb",$link))
   {
      echo "Error seleccionando la base de datos.";
      exit();
   }
   return $link;
}

$link=Conectarse();
echo "Conexión con la base de datos conseguida.<br>";


$codigo=$_POST['codigo'];
mysql_query("insert into as(codigo) values ('$codigo')",$link);



mysql_close($link); //cierra la conexion



?>
</body>
</html>


Título: Re: Problema Al ingresar datos a Tablas (MYQL)
Publicado por: HdM en 16 Julio 2012, 11:58 am
Buenas.

Citar
"insert into as(codigo) values ('$codigo')"

http://dev.mysql.com/doc/refman/5.0/es/insert.html (http://dev.mysql.com/doc/refman/5.0/es/insert.html)

Saludos.


Título: Re: Problema Al ingresar datos a Tablas (MYQL)
Publicado por: Shell Root en 16 Julio 2012, 21:03 pm
A pesar de que ese es un problema, no es que principal. El error es porque se hace una petición POST, pero no se declara el ID del objeto, entonces cambia el input por,
Código
  1. <input type='text' id='txt_codigo' name='txt_codigo' ... />

Ahora, si eso soluciona el error que se te presenta, verificar y modifica lo que te dijo @Bulld0z3r.


Título: Re: Problema Al ingresar datos a Tablas (MYQL)
Publicado por: s00rk en 16 Julio 2012, 22:18 pm
A pesar de que ese es un problema, no es que principal. El error es porque se hace una petición POST, pero no se declara el ID del objeto, entonces cambia el input por,
Código
  1. <input type='text' id='txt_codigo' name='txt_codigo' ... />

Ahora, si eso soluciona el error que se te presenta, verificar y modifica lo que te dijo @Bulld0z3r.

Yo nunca he usado el ID del input, con solo pones el name ahi con ese identificador siempre me ha funcionado si acaso el error que yo estoy viendo capas y es porque al entrar la pimera vez ya se esta intentando agregar el codigo y como el POST esta vacio pues sale el error lo que deberia hacer es primero checar que $_POST del submit para que si se presiono entre en insertar el nuevo codigo sino pues simplemente no hehe quedando asi:

[Cambie el form a minusculas porque no me gusta como se ve en mayusculas la verdad se me hace feo hehe]
Código
  1. <html>
  2. <head>
  3.   <title>Ejemplo de PHP</title>
  4. </head>
  5. <body>
  6.  
  7. <form method="post">
  8. <table>
  9. <tr>
  10.   <td>Codigo:</td>
  11.   <td><input type="text" name="codigo" size="20" maxlength="30"></td>
  12. </tr>
  13. </table>
  14. <input type="submit" value="Grabar" name="insertar"> <!-- Agregamos nombre: insertar -->
  15. </form>
  16.  
  17.  
  18.  
  19. <?php
  20. function Conectarse()
  21. {
  22.   if (!($link=mysql_connect("localhost","root","")))
  23.   {
  24.      echo "Error conectando a la base de datos.";
  25.      exit();
  26.   }
  27.   if (!mysql_select_db("mydb",$link))
  28.   {
  29.      echo "Error seleccionando la base de datos.";
  30.      exit();
  31.   }
  32.   return $link;
  33. }
  34.  
  35. if(isset($_POST['insertar'])) // Checamos que se haya dado click al boton insertar si es asi entramos
  36. {
  37. $link=Conectarse();
  38. echo "Conexi&#243;n con la base de datos conseguida.<br>";
  39.  
  40. $codigo=$_POST['codigo'];
  41. mysql_query("insert into as(codigo) values ('$codigo')",$link);
  42.  
  43. mysql_close($link); //cierra la conexion
  44. }
  45.  
  46. ?>
  47. </body>
  48. </html>