Я пытаюсь получить данные клиентов тренера из таблицы client
, которая применяется только к пользователю из таблицы personal_trainer
. Однако в таблице клиента отсутствует внешний ключ для идентификации тренера.
Я создал две другие таблицы nutrition
и training
, которые имеют как ClientID, так и personalTrainerID в качестве внешних ключей от своих соответствующих таблиц. Мне интересно, что такое оператор SQL для извлечения данных?
Логика, которую я пытаюсь создать, такова: если тренер (personaltrainerID) создал план трианинга / питания и назначил его клиенту (clientID), на выходе получаются все клиенты, которым назначено обучение / питание план.
Первый $query
предназначен для работающей функции поиска, проблема заключается в выражении
$query = "SELECT * from client AS t1 LEFT JOIN nutrition_plan AS t2 ON personalTrainerID = clientID";
Полный код:
<?php
//code to search for a item from the database
// user can enter any character to search for a value from the db
if (isset($_POST['search'])) {
$valueToSearch = $_POST['ValueToSearch'];
$query = "SELECT * FROM client WHERE concat(`clientID`, `name`, `age`, `sex`, `weight`, `height`, `yearsExperience`, `goal`, `injuries`, 'email')LIKE'%".$valueToSearch."%'";
$search_result = filterTable($query);
} else {
$ query = "SELECT * от клиента AS t1 ВЛЕВО ПОДКЛЮЧЕНО feed_plan AS t2 ON personalTrainerID = clientID";
$ search_result = filterTable ($ query);
}
//code to filter the db
function filterTable($query)
{
$connect = mysqli_connect('localhost:3308', 'root', '', 'fypdatabase');
$filter_Result = mysqli_query($connect, $query);
return $filter_Result;
}
?>
<?php
while ($row = mysqli_fetch_array($search_result)) {
//display the details from the db in the table with option to delete or update entry
?>
<tr>
<td><?php echo $row['clientID']; ?></td>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['age']; ?></td>
<td><?php echo $row['sex']; ?></td>
<td><?php echo $row['weight']; ?></td>
<td><?php echo $row['height']; ?></td>
<td><?php echo $row['yearsExperience']; ?></td>
<td><?php echo $row['goal']; ?></td>
<td><?php echo $row['injuries']; ?></td>
<td><?php echo $row['email']; ?></td>
<td>
<a href="?Delete=<?php echo $row['clientID']; ?>" onclick="return confirm('Are you sure?');">Delete</a>
</td>
<td>
<a href="updateClient.php?Edit=<?php echo $row['clientID']; ?>" onclick="return confirm('Are you sure?');">Update</a>
</td>
</tr>
<?php
}
Таблица:
CREATE TABLE IF NOT EXISTS `training_plan` (
`trainingPlanID` int(11) NOT NULL AUTO_INCREMENT,
`personalTrainerID` int(11) NOT NULL,
`clientID` int(11) NOT NULL,
`trainingType` varchar(30) NOT NULL,
`exercise1` varchar(30) NOT NULL,
CREATE TABLE IF NOT EXISTS `nutrition_plan` (
`nutritionplanID` int(11) NOT NULL AUTO_INCREMENT,
`personaltrainerID` int(11) NOT NULL,
`clientID` int(11) NOT NULL,
`nutritionPlan` varchar(30) NOT NULL,
`mealType` varchar(30) NOT NULL,
CREATE TABLE IF NOT EXISTS `personal_trainer` (
`personalTrainerID` int(11) NOT NULL,
`name` varchar(30) NOT NULL,
`location` varchar(30) NOT NULL,
`age` int(11) NOT NULL,
`sex` varchar(30) NOT NULL,
`yearsExperience` int(11) NOT NULL,
CREATE TABLE IF NOT EXISTS `client` (
`clientID` int(11) NOT NULL,
`name` varchar(30) NOT NULL,
`age` int(11) NOT NULL,
`sex` varchar(30) NOT NULL,
`weight` int(11) NOT NULL,