> Faqs > Cómo puedo insertar datos de dos tablas relacionadas con Mysql y PHP

Cómo puedo insertar datos de dos tablas relacionadas con Mysql y PHP

Disculpen si la pregunta ya esta en algun lado, pero no he sabido encontrarla, necesito ayuda.

Tengo un formulario html, en donde registro un usuario como titular y un grupo de familiares que dependen de el, (a especie de seguro) todo en el mismo formulario.

En la base de datos, tengo una tabla para cliente titular con un id autoincrement, y una tabla de familiares, donde cada registro debe ser asociado al id del titular, ya hice la relacion entre una tabla y la otra, pero no tengo idea de como hacer para que cuando ingrese la informacio en el formulario los cargue correctamente, lei algo de usar el insert_id, pero creo que tengo que cargar el principal primero, y mi formulario es uno completo,

<!-- Content here-->
<div class="container-fluid">
	<form class="form-neon FormularioAjax" action="<?php echo SERVERURL;?>ajax/usuarioAjax.php" method="POST" data-form="save" autocomplete="off">
		<fieldset>
			<legend><i class="far fa-address-card"></i> &nbsp; Información personal</legend>
			<div class="container-fluid">
				<div class="row">
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_cedula" class="bmd-label-floating">Cedula de Identidad</label>
							<input type="text" pattern="[0-9-]{7,10}" class="form-control" name="usuario_cedula_reg" id="usuario_cedula" maxlength="20" required="" >
						</div>
					</div>

					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_nombres" class="bmd-label-floating">Nombres</label>
							<input type="text" pattern="[a-zA-ZáéíóúÁÉÍÓÚñÑ ]{1,35}" class="form-control" name="usuario_nombres_reg" id="usuario_nombres" maxlength="35" required="" >
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_apellidos" class="bmd-label-floating">Apellidos</label>
							<input type="text" pattern="[a-zA-ZáéíóúÁÉÍÓÚñÑ ]{1,35}" class="form-control" name="usuario_apellidos_reg" id="usuario_apellidos" maxlength="35" required="" >
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_telefono_1" class="bmd-label-floating">Teléfono 1</label>
							<input type="text" pattern="[0-9()+]{11}" class="form-control" name="usuario_telefono_reg" id="usuario_telefono" maxlength="20">
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_telefono" class="bmd-label-floating">Teléfono 2</label>
							<input type="text" pattern="[0-9()+]{11}" class="form-control" name="usuario_telefono_reg" id="usuario_telefono" maxlength="20">
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_email" class="bmd-label-floating">Email</label>
							<input type="email" class="form-control" name="usuario_email_reg" id="usuario_email" maxlength="70">
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_direccion" class="bmd-label-floating">Dirección</label>
							<input type="text" pattern="[a-zA-Z0-9áéíóúÁÉÍÓÚñÑ().,#\- ]{1,190}" class="form-control" name="usuario_direccion_reg" id="usuario_direccion" maxlength="190">
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_fecha" class="bmd-label-floating">Fecha de Nacimiento</label>
							<input type="date" class="form-control" name="usuario_fecha_reg" id="usuario_fecha" value="2004-01-01" required="" >
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_direccion" class="bmd-label-floating">Ocupacion</label>
							<input type="text" pattern="[a-zA-Z0-9áéíóúÁÉÍÓÚñÑ().,#\- ]{1,190}" class="form-control" name="usuario_direccion_reg" id="usuario_direccion" maxlength="190">
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_direccion" class="bmd-label-floating">Dirección de Trabajo</label>
							<input type="text" pattern="[a-zA-Z0-9áéíóúÁÉÍÓÚñÑ().,#\- ]{1,190}" class="form-control" name="usuario_direccion_reg" id="usuario_direccion" maxlength="190">
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<p><label for="usuario_foto" class="bmd-label-floating">Ingresa foto de Documento</label></p>
							<input type="file" id="usuario_foto" name="usuario_foto_reg" accept=".png, .jpeg, .jpg, .pdf">
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<select class="form-control" id="usuario_cargo_reg" name="usuario_cargo_reg">
								<option value="" selected="" disabled="">Seleccione un Plan</option>
								<option value="1">Basico</option>
								<option value="2">Adulto Mayor</option>
								<option value="3">Especial</option>
								<option value="4">Familiar</option>
							</select>
						</div>
					</div>
				</div>
			</div>
		</fieldset>
		<br><br><br>
		<fieldset>
			<legend><i class="fas fa-user-lock"></i> &nbsp; Grupo Familiar</legend>
			<div class="container-fluid">
				<div class="row">
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_cedula" class="bmd-label-floating">Cedula de Identidad</label>
							<input type="text" pattern="[0-9-]{7,10}" class="form-control" name="usuario_cedula_reg" id="usuario_cedula" maxlength="20" required="" >
						</div>
					</div>

					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_nombres" class="bmd-label-floating">Nombres</label>
							<input type="text" pattern="[a-zA-ZáéíóúÁÉÍÓÚñÑ ]{1,35}" class="form-control" name="usuario_nombres_reg" id="usuario_nombres" maxlength="35" required="" >
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_apellidos" class="bmd-label-floating">Apellidos</label>
							<input type="text" pattern="[a-zA-ZáéíóúÁÉÍÓÚñÑ ]{1,35}" class="form-control" name="usuario_apellidos_reg" id="usuario_apellidos" maxlength="35" required="" >
						</div>
					</div>
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_telefono_1" class="bmd-label-floating">Teléfono</label>
							<input type="text" pattern="[0-9()+]{11}" class="form-control" name="usuario_telefono_reg" id="usuario_telefono" maxlength="20">
						</div>
					</div>
					
					<div class="col-12 col-md-4">
						<div class="form-group">
							<label for="usuario_fecha" class="bmd-label-floating">Fecha de Nacimiento</label>
							<input type="date" class="form-control" name="usuario_fecha_reg" id="usuario_fecha" value="2000-01-01" required="" >
						</div>
					</div>
					
					<div class="col-12 col-md-4">
						<div class="form-group">
							<p><label for="usuario_foto" class="bmd-label-floating">Ingresa foto de Documento</label></p>
							<input type="file" id="usuario_foto" name="usuario_foto_reg" accept="image/png, .jpeg, .jpg">
						</div>
					</div>
					<div class="container-fluid">
						<div class="row">
							<div class="col-12 col-md-4">
								<div class="form-group">
									<label for="usuario_cedula" class="bmd-label-floating">Cedula de Identidad</label>
									<input type="text" pattern="[0-9-]{7,10}" class="form-control" name="usuario_cedula_reg" id="usuario_cedula" maxlength="20" required="" >
								</div>
							</div>

							<div class="col-12 col-md-4">
								<div class="form-group">
									<label for="usuario_nombres" class="bmd-label-floating">Nombres</label>
									<input type="text" pattern="[a-zA-ZáéíóúÁÉÍÓÚñÑ ]{1,35}" class="form-control" name="usuario_nombres_reg" id="usuario_nombres" maxlength="35" required="" >
								</div>
							</div>
							<div class="col-12 col-md-4">
								<div class="form-group">
									<label for="usuario_apellidos" class="bmd-label-floating">Apellidos</label>
									<input type="text" pattern="[a-zA-ZáéíóúÁÉÍÓÚñÑ ]{1,35}" class="form-control" name="usuario_apellidos_reg" id="usuario_apellidos" maxlength="35" required="" >
								</div>
							</div>
							<div class="col-12 col-md-4">
								<div class="form-group">
									<label for="usuario_telefono_1" class="bmd-label-floating">Teléfono</label>
									<input type="text" pattern="[0-9()+]{11}" class="form-control" name="usuario_telefono_reg" id="usuario_telefono" maxlength="20">
								</div>
							</div>
							
							<div class="col-12 col-md-4">
								<div class="form-group">
									<label for="usuario_fecha" class="bmd-label-floating">Fecha de Nacimiento</label>
									<input type="date" class="form-control" name="usuario_fecha_reg" id="usuario_fecha" value="2000-01-01" required="" >
								</div>
							</div>
							
							<div class="col-12 col-md-4">
								<div class="form-group">
									<p><label for="usuario_foto" class="bmd-label-floating">Ingresa foto de Documento</label></p>
									<input type="file" id="usuario_foto" name="usuario_foto_reg" accept="image/png, .jpeg, .jpg">
								</div>
							</div>

no sé como adjuntar aqui la imagen de la relacion de las tablas, si me pueden ayudar, se los agradezco un mundo, gracias

Respuestas

Justamente es eso que señalas,

  1. insertar el registro de la tabla principal
  2. obtener el id de la última insercion, que es el de la tabla principal
  3. insertar los registros de la tabla relacionada

para obtener el ID de la tabla principal tienes que utilizar la función de inser id de mysquli que has comentado.

Saludos

Alba
355 9 25 13

Complementando la respuesta anterior.

Efectivamente, primero das de alta la entidad principal y luego las secundarias, usando el id de la principal para poder relacionarlas.

Lee este artículo para saber cómo obtener el id de la última inserción con MySQL.

Miguel Angel
3295 146 215 17