¿En PHP y MYSQL como insertar datos desde un solo formulario con 2 tablas relacionadas?

Tengo la siguiente situación:
Tengo una tabla llamada Cliente

id_cliente,

Nombre,

Apellidopaterno,

Apmaterno,

Deireccion,

Teléfono.

Y en otra tabla guardo las personas que realizaron dicha reservación:

Tabla Reservación

id_reservacion,

FechaEntrada,

FechaSalida,

id_cliente ( llave foranea de la tabla cliente);

Lo que requiero es que todo esto se aguarde ya que estan en un mismo formulario

Comentarion o Sugerencias ya que soy nuevo en PHP

Respuesta
1

Tienes que utilizar mysqli_insert_id que es la función que te devuelve el id insertado, tienes que insertar primero los datos de

id_cliente,

Nombre,

Apellidopaterno,

Apmaterno,

Deireccion,

Teléfono.

Obtener el id con mysqli_insert_id

y nuevamente hacer la inserción en la tabla 

id_reservacion,

FechaEntrada,

FechaSalida,

id_cliente ( valor devuelto del mysqli_insert_id)
Para el borrado si tienes activado el innodb esto borrara los datos.

Te dejo enlaces de la documentación:http://php.net/manual/es/mysqli.insert-id.php 

Si necesitas ayuda me comentas.

Saludos y gracias por suscribirte a :https://www.youtube.com/user/dimit28  y visitar:http://develoteca.com

¡Gracias!

Muchas gracias por la información amigo lo chequearé a por cierto ya me suscribí a tu cana de youtube, espero aprender mucho con los videos tutoriales que tienes gracias de atemanano..

saludos y si llegara tener una duda más te la pediré

otra vez amigo disculpa este es necesario tener como motor de almacenamiento INNODB o usar myisam checa por que ya ise lo que me pasaste y aquí tengo el código php pero nada más me aguarda en la tabla clientes los datos pero en la tabla reservacaion no guarda nada este es mi código php

¿

<?php
$db=mysql_connect("localhost", "root", "");
mysql_select_db("db_hotel", $db);
if(isset($_POST['send']))
{
$nombre = $_POST['nombre'];
$appaterno = $_POST['appaterno'];
$apmaterno = $_POST['apmaterno']; 
$direccion = $_POST['direccion']; 
$phone = $_POST['phone']; 
$entrada = $_POST['entrada']; 
$salida = $_POST['salida'];
$consulta = "insert into cliente (cli_nombre,cli_paterno,cli_materno,direccion,telefono) "."values ('$nombre','$appaterno','$apmaterno','$direccion','$phone')"; 
$respuesta = mysql_query($consulta,$db); 
$var=mysql_insert_id(); /*se obtiene el valor del ultimo id*/
$consulta_2="insert into reservacion (res_entrada,res_salida,pk_id_cliente) "." values('$entrada','$salida','$var ')"; 
$respuesta_2 = mysql_query($consulta_2,$db);
}
?>

Debe de ser un problema de datos, puedes imprimir

$var=mysql_insert_id();

Para saber si el valor esta llegando bien, posterior a eso imprime la ultima cadena sql: 

$Consulta_2

Para saber si el valor esta llegando hasta la sentencia, inclusive puedes ejecutar con el navicat o cualquier cliente mysql la sentencia que resulte de $consulta_2, si tiene alguna problema puedes pasar el sql para ejecutarlo y comprobar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas