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

Formulario y Base de Datos. Mete valores en blanco.

Estas en el tema de Formulario y Base de Datos. Mete valores en blanco. en el foro de Bases de Datos General en Foros del Web. Hola, estoy siguiendo un curso, y quiero crear un formulario y que los datos los meta en una base de datos, el caso es que ...
  #1 (permalink)  
Antiguo 08/08/2009, 06:00
Usuario no validado
 
Fecha de Ingreso: agosto-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 1
Formulario y Base de Datos. Mete valores en blanco.

Hola, estoy siguiendo un curso, y quiero crear un formulario y que los datos los meta en una base de datos, el caso es que si me conecta con la base de datos, pero me mete datos en blanco. Estoy en local, aunque si lo subo a un server el problema es el mismo, si me añade pero en blanco, osea que si que conecta con la base de datos, tanto para guardar como para leer, pero mete en blanco, osea no mete los datos bien.

Os incluyo los archivos que utilizo:

Base de datos:

Código:
CREATE TABLE `prueba` (
  `ID_Prueba` int(11) NOT NULL AUTO_INCREMENT,
  `Nombre` varchar(100) COLLATE latin1_spanish_ci NOT NULL,
  `Apellidos` varchar(100) COLLATE latin1_spanish_ci NOT NULL,
  PRIMARY KEY (`ID_Prueba`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=4 ;

-- 
-- Volcar la base de datos para la tabla `prueba`
-- 

INSERT INTO `prueba` VALUES (1, '', '');
INSERT INTO `prueba` VALUES (2, '', '');
conexion.php
Código PHP:
<!-- conexión.php -->
<html>
<head>
   <title>Ejemplo de PHP</title>
</head>
<body>
<?php
function Conectarse()
{
   if (!(
$link=mysql_connect("localhost","root","121992")))
   {
      echo 
"Error conectando a la base de datos.";
      exit();
   }
   if (!
mysql_select_db("noticias",$link))
   {
      echo 
"Error seleccionando la base de datos.";
      exit();
   }
   return 
$link;
}

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

mysql_close($link); //cierra la conexion
?>
</body>
</html>
db_conecta.inc
Código PHP:
<!-- db_conecta.inc -->
<?php
function Conectarse()
{
   if (!(
$link=mysql_connect("localhost","root","121992")))
   {
      echo 
"Error conectando a la base de datos.";
      exit();
   }
   if (!
mysql_select_db("noticias",$link))
   {
      echo 
"Error seleccionando la base de datos.";
      exit();
   }
   return 
$link;
}
?>
procesar.php
Código PHP:
<?php
   
include("conexion.php");
   
$link=Conectarse();
   
mysql_query("insert into prueba (Nombre,Apellidos) values ('$nombre','$apellidos')",$link);
   
   
header("Location: ejemplo22.php");
?>
ejemplo22.php
Código PHP:
<!-- Ejemplo22.php -->
<html>
<head>
   <title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de uso de bases de datos con PHP y MySQL</H1>
<FORM ACTION="procesar.php">
<TABLE>
<TR>
   <TD>Nombre:</TD>
   <TD><INPUT TYPE="text" NAME="nombre" SIZE="20" MAXLENGTH="30"></TD>
</TR>
<TR>
   <TD>Apellidos:</TD>
   <TD><INPUT TYPE="text" NAME="apellidos" SIZE="20" MAXLENGTH="30"></TD>
</TR>
</TABLE>
<INPUT TYPE="submit" NAME="accion" VALUE="Grabar">
</FORM>
<hr>
<?php
   
include("db_conecta.inc");
   
$link=Conectarse();
   
$result=mysql_query("select * from prueba",$link);
?>
   <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
      <TR><TD>&nbsp;<B>Nombre</B></TD> <TD>&nbsp;<B>Apellidos</B>&nbsp;</TD></TR>
<?php      

   
while($row mysql_fetch_array($result)) {
      
printf("<tr><td>&nbsp;%s</td> <td>&nbsp;%s&nbsp;</td></tr>"$row["Nombre"], $row["Apellidos"]);
   }
   
mysql_free_result($result);
   
mysql_close($link);   
?>
</table>
</body>
</html>

Si alguien sabe que puede pasar se lo agradeceria muchisimo, ya que tengo un proyecto en mente y esto es de gran utilidad para mi pagina web.
  #2 (permalink)  
Antiguo 08/08/2009, 06:12
Avatar de Ronin46  
Fecha de Ingreso: junio-2009
Mensajes: 398
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: Formulario y Base de Datos. Mete valores en blanco.

No sé si tienes Register globals a on, pero para asegurar haz lo siguiente:

mysql_query("insert into prueba (Nombre,Apellidos) values (' " . $_POST['nombre'] . " ',' " . $_POST['apellidos'] . " '));

P.D: Como consejo te aconsejo revisar los datos que van en el formulario para comprobar que son correctos.
__________________
http://www.controldegastos.com, acepto sugerencias para el sitio.
Repetir conmingo: "tengo que dedicar más tiempo a gozar de placer"
  #3 (permalink)  
Antiguo 08/08/2009, 06:45
Usuario no validado
 
Fecha de Ingreso: agosto-2009
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Formulario y Base de Datos. Mete valores en blanco.

Pues parece que el formulario esta bien, yo por lo menos no veo nada raro.

Referente a lo que me has puesto, da error, lo arregle poniendolo asi, faltaban unas comillas al final para cerrar:

Código PHP:
   mysql_query("insert into prueba (Nombre,Apellidos) values (' " $_POST['nombre'] . " ',' " $_POST['apellidos'] . " ')"); 
Register globals en local no lo encuentro, creo recordar que eso esta en el php.ini, pero en local no lo veo.

De cualquier manera el error sigue siendo el mismo, añade pero en blanco.

Alguna otra sugerencia. ??
  #4 (permalink)  
Antiguo 08/08/2009, 08:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Formulario y Base de Datos. Mete valores en blanco.

gariko01,
pide ayuda en el foro PHP. Allí te resolverán el problema. Aquí sólo podemos decirte que la consulta de inserción parece estar bien. Presta atención a que no indicas en el formulario el método por el que recoges la variable, el método POST. Pregunta allí.
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 00:07.