Ayuda para insertar registros en la base de datos utilizando php

Hola que tal. Quiero pedrite el gran favor para solucionar un problema. Quiero efectuar la alta de registros. PEro este no lo efectúa. Te mando el código:
Este documento se llama user.php:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<?php
if (isset($enviar))
{
echo $Nombre,"<br>",$Apellido1,"<br>",$Apellido2,"<br>",$Area;
include ("connect.php");
$link = connect();
mysql_query ("insert into usuario (Nombre, Apellido1, Apellido2, Area) values ('$Nombre','$Apellido1','$Apellido2','$Area')",$link);
echo "Gracias hemos recibido sus datos";
mysql_close ($link);
} else
{
?>
<form action = "user.php" method = "post" >
<table>
<tr>
<td> Nombre(s): </td>
<td> <input type = "text" name = "$Nombre" size = "20"> </td>
</tr>
<tr>
<td> Apellido Paterno: </td>
<td> <input type = "text" name = "$Apellido1" size = "20"> </td>
</tr>
<tr>
<td> Apellido Materno: </td>
<td> <input type = "text" name = "$Apellido2" size = "20"> </td>
</tr>
<td> Area: </td>
<td> <select name = "$Area">
<option> Gerencia
<option> Trafico
<option> Operaciones
<option> Area Rural
<option> Area Urbana
<option> Apoyo a Organismos
<option> Administracion
</select>
</td>
</tr>
<tr>
<td>
<br>
<br>
<input value = "Registrar" type = "submit" name = "enviar" border = 0>
</td>
<td>
<br>
<br>
<input type = "reset" value = "Limpiar">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
y este donde se reazlia la conexion a la base de datos se llama: connect.php:
<?php
function connect()
{
if (!$link = mysql_connect("localhost"))
{
echo "Error conectando a la base de datos";
exit();
}
if (!mysql_select_db("impresiones",$link))
{
echo "Error al seleccionar la base de datos";
exit();
}
return $link;
}
$link = connect();
//echo "Conexion con la base de datos conseguida <br>";
?>
No se inserta ningun registro.
En la base de datos puse como nombre de los campos los mismos que para los nombres de los controles (textbutton, etc).
Usuario | int(11)
Nombre | varchar(12)
Apellido1 | varchar(10)
Apellido2 | varchar(10)
Area | varchar(25)
¿Qué podrá ser?. Grwcias por tu ayuda

1 respuesta

Respuesta
1
Pues en principio lo que veo ees que en el mysql_connect te falta el usuario y la clave...
Por lo demás debería funcionar.. pero no pones nada de que pone como error o algo.. así que es muy difícil saber que pasa.
Muchas gracias por tu ayuda. Ya hice la modificación respectiva. Pero al momento de efectuar la alta, se pone un warning:
Cannot add header information - headers already sent by (output started at C:\FoxServ\www\control de impresiones\connect.php:21) in C:\FoxServ\www\control de impresiones\register.php on line 22
Mira que no coloque en localhost mis carpetas. Sino que cree una carpeta llamada control de impresiones y ahí puse todos mis archivos html y php, yo los cambie a localhost y cargue nuevamente la pa´gina principal, pero me siguió marcnaod el mismo error. Si sabes a que se debe el error, te pido que me ayudes. Gracias.
Hola gracias nuevamenet por tu ayuda. Pero ahora sigue marcando el misnmo problema pero ahora en otro script. Cehque todos los espacios y lineas de más, todos los borre pero aun así me sigue marcando el mismo error. El script es el siguiente (es el que efectúa la alta):
<?php
include ("connect.php");
$link=connection();
mysql_query("insert into usuario(Nombre,Apellido1,Apellido2,Area) values ('$Nombre','$Apellido1','$Apellido2','$Area')",$link);
if (mysql_errno($link)==0)
{
echo "<h2> <b> Registro añadido </b> </h2>";
}
else
{
if (mysql_errno($link)==1062)
{
echo "<h2>No ha podido añadirse el registro<br>Ya existe un campo con este DNI</h2>";
}
else
{
$numerror=mysql_errno($link);
$descrerror=mysql_error($link);
echo "Se ha producido un error num", $numerror ,"que corresponde a:", $descrerror ,"<br>";
}
}
header("Location:users.html");
mysql_close($link);
?>
y me marc el mismo error:
Cannot add header information - headers already sent by (output started at C:\FoxServ\www\control de impresiones\connect.php:21) in C:\FoxServ\www\control de impresiones\register.php on line 22
pero esto justamente en la linea de:
header("Location:users.php");
que es el formulario dodne introduzco los datos. El codigo de users.php esd el siguiente:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form action="register.php" method="post" >
<table>
<tr>
<td> Nombre(s): </td>
<td> <input type = "text" name="$Nombre" size = "12"> </td>
</tr>
<tr>
<td> Apellido Paterno: </td>
<td> <input type = "text" name="$Apellido1" size = "10"> </td>
</tr>
<tr>
<td> Apellido Materno: </td>
<td> <input type = "text" name="$Apellido2" size = "10"> </td>
</tr>
<td> Area: </td>
<td> <select name="$Area">
<option> Gerencia
<option> Trafico
<option> Operaciones
<option> Area Rural
<option> Area Urbana
<option> Apoyo a Organismos
<option> Administracion
</select>
</td>
</tr>
<tr>
<td>
<br>
<br>
<input value="Registrar" type="submit" name="enviar" border = 0>
</td>
<td>
<br>
<br>
<input type="reset" value="Limpiar">
</td>
</tr>
</table>
</form>
</body>
</html>
¿Tiene qué ver algo de que yo haya guardado este documento como php y no como html?. Gracias por tu ayuda nuevamente.
Ese error es que tienees espacios en blanco fuera de los símbolos <?> En connect.php.. y está intentando escribir las cabeceras...
Borra todos los espacios y nuevas lineas en connect fuera de <? ?>
El problema es que los headers es lo primero que tiene que recibir el navegador.. osea.. debes poner el headers() antes de cualquier cosas impresa.. y tienes un "echo" .. el registro se ha añadido. Sólo es eso...
Quítalo .. y ponlo en el script al que rediriges..
Nuevamente te doy las gracias. Mira que hice los cambios que tu me dijiste. Pero no me funciono. Por lo que estoy probando con otro código. Mira aquí te mando el script, pero también tengo problemas en este para efectuar la alta. Piod nuevamente tu ayuda para que me puedas ayudar a solucionarlo. Muchas gracias.
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
body {
SCROLLBAR-FACE-COLOR:#6699CC;
SCROLLBAR-HIGHLIGHT-COLOR: #6699CC;
SCROLLBAR-SHADOW-COLOR: #6699CC;
SCROLLBAR-3DLIGHT-COLOR: #FFFFFF;
SCROLLBAR-ARROW-COLOR: #FFFFFF;
SCROLLBAR-TRACK-COLOR: #E3E3E3;
SCROLLBAR-DARKSHADOW-COLOR: #000000;
}
</style>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<?php
if isset($enviar)
{
// Se realiza la alta en el formulario
if (!$link = mysql_connect("localhost"))
{
echo "Error conectando a la base de datos";
exit();
}
if (!mysql_select_db("impresiones",$link))
{
echo "Error al seleccionar la base de datos";
exit();
}
$query = "insert into usuario(Nombre,Apellido1,Apellido2,Area) values ('$Nombre','$Apellido1','$Apellido2','$Area')";
$resp = mysql_query($query,$link);
if (mysql_errno($link)==0)
{
echo "<h2> <b> Registro añadido </b> </h2>";
}
else
{
if (mysql_errno($link)==1062)
{
echo "<h2>No ha podido añadirse el registro<br>Ya existe un campo con este DNI</h2>";
}
else
{
$numerror=mysql_errno($link);
$descrerror=mysql_error($link);
echo "Se ha producido un error num", $numerror ,"que corresponde a:", $descrerror ,"<br>";
}
}
mysql_close($link);
}
else
{
?>
<form method="post" action="user.php" >
<table>
<tr>
<td> Nombre(s): </td>
<td> <input type = "text" name="Nombre" size = "12"> </td>
</tr>
<tr>
<td> Apellido Paterno: </td>
<td> <input type = "text" name="Apellido1" size = "10"> </td>
</tr>
<tr>
<td> Apellido Materno: </td>
<td> <input type = "text" name="Apellido2" size = "10"> </td>
</tr>
<td> Area: </td>
<td> <select name="$Area">
<option> Gerencia
<option> Trafico
<option> Operaciones
<option> Area Rural
<option> Area Urbana
<option> Apoyo a Organismos
<option> Administracion
</select>
</td>
</tr>
<tr>
<td>
<br>
<br>
<input value="Registrar" type="submit" name="enviar" border = 0>
</td>
<td>
<br>
<br>
<input type="reset" value="Limpiar">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
Creo que es el usuario y la clave de la db

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas