I currently have three tables
users
table // Data is inserted at time of sign up
usersId //PRIMARY KEY
userfName
userlName
userUid
email
userPwd
dateTime
parent
table
id //PRIMARY KEY
mFname
mLname
mEmail
mPhone
fFname
fLname
fEmail
fPhone
addressL1
addressL2
city
stateAbbr
zip
created_at
user_id //FOREIGN KEY
I used the email column from the users table and the mEmail OR fEmail to insert the usersId into the parents table
Children
Table
child_id //PRIMARY KEY
child1Name
dobChild1
ageChild1
child2Name
dobChild2
ageChild2
child3Name
dobChild3
ageChild3
child4Name
dobChild4
ageChild4
child5Name
dobChild5
ageChild5
child6Name
dobChild6
ageChild6
child7Name
dobChild7
ageChild7
child8Name
dobChild8
ageChild8
child9Name
dobChild9
ageChild9
child10Name
dobChild10
ageChild10
parent_id //FOREIGN KEY
There are no common values between the childrens table and the other two. My hope was to validate between the users table and the parent tables then if the values match for the users.usersId and the parent.user_id are equal to each other then insert that value into the children.parent_id. Is this even possible? I was thinking of using a cross join but I am concerned about performance down the road as the number of entries in the Db grow.
SELECT usersId FROM users;
SELECT user_id FROM parent;
UPDATE children (parent_Id) INNER JOIN parent ON children.parent_id = users.usersId
UPDATE children
SELECT usersId
FROM users
cross JOIN children.parent_id ON users.usersId = children.parent_id
UPDATE children
INNER JOIN users
(INNER JOIN parent ON users.userId = parent.userId)
ON users.usersId = parent.user_id
SET children.parent_id = parent.user_Id;
I have tried each of these but none of them have worked. I have tried changing the order of the Joins as well to no avail. Any help would be greatly apprecaited.
<?PHP
require_once 'dbh.inc.php';
include_once 'functions.inc.php';
session_start();
if (isset($_POST["submit"])) {
//Child 1
$child1Name = $_POST["child1Name"];
$dobChild1 = date('Y-m-d', strtotime($_POST['dobChild1']));
$ageChild1 = $_POST["ageChild1"];
//Child 2
$child2Name = $_POST["child2Name"];
$dobChild2 = date('Y-m-d', strtotime($_POST['dobChild2']));
$ageChild2 = $_POST["ageChild2"];
//Child 3
$child3Name = $_POST["child3Name"];
$dobChild3 = date('Y-m-d', strtotime($_POST['dobChild3']));
$ageChild3 = $_POST["ageChild3"];
//Child 4
$child4Name = $_POST["child4Name"];
$dobChild4 = date('Y-m-d', strtotime($_POST['dobChild4']));
$ageChild4 = $_POST["ageChild4"];
//Child 5
$child5Name = $_POST["child5Name"];
$dobChild5 = date('Y-m-d', strtotime($_POST['dobChild5']));
$ageChild5 = $_POST["ageChild5"];
//Child 6
$child6Name = $_POST["child6Name"];
$dobChild6 = date('Y-m-d', strtotime($_POST['dobChild6']));
$ageChild6 = $_POST["ageChild6"];
//Child 7
$child7Name = $_POST["child7Name"];
$dobChild7 = date('Y-m-d', strtotime($_POST['dobChild7']));
$ageChild7 = $_POST["ageChild7"];
//Child 8
$child8Name = $_POST["child8Name"];
$dobChild8 = date('Y-m-d', strtotime($_POST['dobChild8']));
$ageChild8 = $_POST["ageChild8"];
//Child 9
$child9Name = $_POST["child9Name"];
$dobChild9 = date('Y-m-d', strtotime($_POST['dobChild9']));
$ageChild9 = $_POST["ageChild9"];
//Child 10
$child10Name = $_POST["child10Name"];
$dobChild10 = date('Y-m-d', strtotime($_POST['dobChild10']));
$ageChild10 = $_POST["ageChild10"];
$parent_id = $_POST['parent_id'];
$sql = "INSERT INTO children (
child1Name, dobChild1, ageChild1,
child2Name, dobChild2, ageChild2,
child3Name, dobChild3, ageChild3,
child4Name, dobChild4, ageChild4,
child5Name, dobChild5, ageChild5,
child6Name, dobChild6, ageChild6,
child7Name, dobChild7, ageChild7,
child8Name, dobChild8, ageChild8,
child9Name, dobChild9, ageChild9,
child10Name, dobChild10, ageChild10,
parent_id) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
echo "SQL ERROR";
} else {
mysqli_stmt_bind_param($stmt, "ssissississississississississii",
$child1Name, $dobChild1, $ageChild1,
$child2Name, $dobChild2, $ageChild2,
$child3Name, $dobChild3, $ageChild3,
$child4Name, $dobChild4, $ageChild4,
$child5Name, $dobChild5, $ageChild5,
$child6Name, $dobChild6, $ageChild6,
$child7Name, $dobChild7, $ageChild7,
$child8Name, $dobChild8, $ageChild8,
$child9Name, $dobChild9, $ageChild9,
$child10Name, $dobChild10, $ageChild10,
$parent_id);
mysqli_stmt_execute($stmt);
}
$serverName = "localhost";
$dBUsername = "root";
$dBPassword = "";
$dBName = "members";
$conn = new mysqli($serverName, $dBUsername, $dBPassword, $dBName);
$sql1 = "UPDATE Children c
SET c.parent_id = (
SELECT p.user_id
FROM users u
JOIN parent p ON u.email = p.mEmail OR u.email = p.fEmail
WHERE c.parent_id IS NULL -- Only update rows with NULL parent_id to avoid overwriting existing values
LIMIT 1 -- Assuming you want to update one parent_id per child record; you may modify this as needed
);";
if ($conn->query($sql1) === TRUE) {
echo "New Record Created Successfully";
} else {
echo "Error: " .$sql1 . "<br>" . $conn->error;
}
$conn->close();
header("Location: ../mf3.php?childreninfo=success");
}