Foros del Web » Programando para Internet » PHP »

Ayuda en un formulario para insertar datos

Estas en el tema de Ayuda en un formulario para insertar datos en el foro de PHP en Foros del Web. Llevo pocos dias aprendiendo php asi que no seais muy duros conmigo si se trata de una tonteria pero me estoy volviendo loco . Este ...
  #1 (permalink)  
Antiguo 23/08/2003, 12:42
 
Fecha de Ingreso: agosto-2003
Mensajes: 14
Antigüedad: 14 años, 3 meses
Puntos: 0
Ayuda en un formulario para insertar datos

Llevo pocos dias aprendiendo php asi que no seais muy duros conmigo si se trata de una tonteria pero me estoy volviendo loco .

Este es el codigo de formulario , que lo envia a enviar.php:

Cita:
<?
include ("conexion.php");

echo "<form method='post' action='enviar.php'>";

echo "id: <input type='Text' name='id'><br><br>";

echo "Nombre: <input type='Text' name='nombre'><br><br>";

echo "Apellido:<input type='Text' name='apellido'><br><br>";

echo "Direccion: <input type='Text' name='direccion'><br><br>";

echo "Telefono: <input type='Text' name='telefono'><br><br>";

echo "Ciudad: <input type='Text' name='ciudad'><br><br>";

echo "<input type='submit' name='submit' value='Entrar Datos'>";
echo "</form>";

?>

Y aqui el enviar.php que es el que tendria que insertar los datos:

<?
include ("conexion.php");

if ($_POST['submit'])

$sql = "INSERT INTO tabla ( 'id' , 'nombre','apellido','direccion',
'telefono','ciudad')
VALUES ('$id' ,'$nombre','$apellido' ,'$direccion','$telefono','$ciudad')" ;
$result = mysql_query($sql);
echo "Registro insertado.\n";

?>
Lo he copiado de un tutorial , pero ajustado a mi tabla por lo que en teoria deberia funcionar bien.

El caso es que al insertarlo me dice eso de "Registro Insertado" vamos que no me da error , pero al volver a la pagina que muestra los registros se ve que no ha insertado nada.

Espero que me podais ayudar.

Gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 23/08/2003, 13:06
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
Pues no registra nada porque necesitas validar cada uno de los campos que vas a enviar al formulario:

Código PHP:
$id=$_POST['id];
$nombre=$_POST['
nombre'];
$apellido=$_POST['
apellido'];
$direccion=$_POST['
direccion'];
$telefono=$_POST['
telefono'];
$ciudad=$_POST['
ciudad]; 
Ponlo antes de la linea de include("conexionphp"), en el enviar.php

A ver si así te resulta, saludos.
  #3 (permalink)  
Antiguo 23/08/2003, 13:30
 
Fecha de Ingreso: agosto-2003
Mensajes: 14
Antigüedad: 14 años, 3 meses
Puntos: 0
Nada

Código PHP:

<?
$id
=$_POST['id'];

$nombre=$_POST['nombre'];

$apellido=$_POST['apellido'];

$direccion=$_POST['direccion'];

$telefono=$_POST['telefono'];

$ciudad=$_POST['ciudad'];


include (
"conexion.php");

if (
$_POST['submit'])

  
$sql "INSERT INTO tabla ('id','nombre','apellido','direccion','telefono','ciudad')
VALUES ('$id','$nombre','$apellido','$direccion','$telefono','$ciudad')" 
;

$result mysql_query($sql);

  echo 
"Registro insertado.\n";
  
?>
Seguramente sea un error muy tonto pero no se inserta nada en la base de datos y la base de datos funciona bien porque metiendome en la consola del mysql y metiendo los datos desde alli si me funciona.

Por cierto el campo id es auto incremental no creo que tenga que ver pero bueno , por si acaso.

Ayuda.

Saludos.

Última edición por 4njel; 23/08/2003 a las 13:36
  #4 (permalink)  
Antiguo 23/08/2003, 13:53
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años, 1 mes
Puntos: 2
Hola, se te ha olvidado abrir y cerrar las {....} del if, ya puestos te he insertado un else por si daba error el código quedaría asi:

Código PHP:
<?
$id
=$_POST['id'];

$nombre=$_POST['nombre'];

$apellido=$_POST['apellido'];

$direccion=$_POST['direccion'];

$telefono=$_POST['telefono'];

$ciudad=$_POST['ciudad'];


include (
"conexion.php");

if (
$_POST['submit']){

  
$sql "INSERT INTO tabla  ('id','nombre','apellido','direccion','telefono','ciudad')
VALUES  ('$id','$nombre','$apellido','$direccion','$telefono','$ciudad')" 
;

$result mysql_query($sql);

  echo 
"Registro insertado.\n";
}else{

  echo 
"No han llegado datos del Formulario";
}

 
?>

Un saludo.
  #5 (permalink)  
Antiguo 23/08/2003, 15:21
 
Fecha de Ingreso: agosto-2003
Mensajes: 14
Antigüedad: 14 años, 3 meses
Puntos: 0
Esto es desesperante , jeje ya sabia yo que enlazar mi base de datos mysql me iba a dar dolores de cabeza , pero pense que no tan pronto .

He hecho otra tabla por si el error estaba alli y he limpiado el codigo dejando solo 2 campos para ver donde esta el fallo ahora esta asi:

Formulario:

Código PHP:

<?
include ("conexion.php"); 

echo 
"<form method='post' action='envbdd.php'>";

echo 
"Nombre:<input type='Text' name='nombre'><br><br>";

echo 
"Apellido:<input type='Text' name='apellido'><br><br>";

echo 
"<input type='submit' name='submit' value='Entrar Datos'>";

echo 
"</form>";

?>

Envbdd.php la que inserta en la base de datos:

<?

$nombre
=$_POST['nombre'];

$apellido=$_POST['apellido'];

include (
"conexion.php");

if (
$_POST['submit']){


  
$sql "INSERT INTO prueba   ('nombre','apellido')
VALUES   ('$nombre','$apellido')"
;

$result mysql_query($sql);

  echo 
"Registro insertado.\n";
  echo 
mysql_errno().":".mysql_error()."<BR>";


}else{

  echo 
"No han llegado datos del Formulario";

}

 
?>
He puesto el codigo de Zertiko en envbdd.php y le he añadido las variables de mysqlerror para ver donde esta el error y me pone esto cuando envio los datos:

Cita:
Registro insertado. 1064:You have an error in your SQL syntax near ''nombre','apellido') VALUES ('jose','perez')' at line 1
Pero yo no veo ningun error a simple vista.

Gracias a todos los que me estais ayudando , seguro que al final es una tonteria pero me esta volviendo loco.

Por cierto esta parte esta bien ?

$result = mysql_query($sql);

Puede ser de ahi el error ? yo ya no se que pensar.

Saludos.

Última edición por 4njel; 23/08/2003 a las 15:23
  #6 (permalink)  
Antiguo 23/08/2003, 15:36
 
Fecha de Ingreso: agosto-2003
Mensajes: 14
Antigüedad: 14 años, 3 meses
Puntos: 0
Lo Consegui , a veces las soluciones son mas faciles de lo que uno cree , en una simple linea solucionado:

Código PHP:
<?
include ("conexion.php"); 

mysql_query ("insert into prueba (nombre,apellido) values ('$nombre','$apellido')");

 
?>
Gracias a todos los que me habeis ayudado .

Saludos.
  #7 (permalink)  
Antiguo 23/08/2003, 15:44
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 15 años, 9 meses
Puntos: 0
hola,

Cita:
Por cierto el campo id es auto incremental no creo que tenga que ver pero bueno , por si acaso.
bueno al momento de responder vi que ya estaba solucionado. por lo que decias no era un error del id pero de todas maneras te recomendaría aunque no sé para qué es la tabla, que no dejes el campo id a ser puesto por el formulario, si es autoincremental usa mysql_insert_id();

saludos
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:51.