У меня есть одна таблица, которая содержит (user_id (первичный ключ), first_name, last_name, email, номер телефона), а другая содержит (phone_id (первичный ключ), phone_number2 и внешний ключ user_id).
Один пользователь может иметь несколько телефонных номеров.
Итак, используя запрос:
$result = "SELECT * FROM personal LEFT JOIN phone ON personal.user_id = phone.user_id";
Я могу показать данные в таблице.
Моя проблема в том, что если у одного человека несколько телефонных номеров, он будет показан в новой строке для каждого дополнительного телефонного номера.
Как я могу объединить все дополнительные телефонные номера в один ряд. Помните, что номера телефонов вводятся динамически с помощью jQuery, поэтому у одного пользователя может быть второй номер телефона или нет.
После этого мне нужно будет отредактировать эти данные.
php код для ввода данных формы
// Makes connection to the database
$mysqli = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die($mysqli->error);
// Checks if the submit button has been pressed, setst the variable values of the name values from the form
if (isset($_POST['submit'])){
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$phone_number = $_POST['phone_number'];
// Inserts the form input into the personal table in the exercise database
$mysqli->query("INSERT INTO personal (first_name, last_name, email, phone_number) VALUES('$first_name', '$last_name', '$email', '$phone_number')")
OR die($mysqli->error);
$user_id = $mysqli->insert_id;
// Checks if the Add more numbers button has been pressed
if (isset($_POST['phone_number2'])) {
$phone_number2 = $_POST['phone_number2'];
// foreach statement to loop trought the array of inserted additional phone numbers
foreach ($phone_number2 as $key => $value) {
$mysqli->query("INSERT INTO phone (user_id, phone_number2) VALUES('$user_id','$value')")
OR die($mysqli->error);
}
}
}
HTML и PHP-код, который представляет входные данные:
<?php
require_once 'process.php';
$result = "SELECT * FROM personal LEFT JOIN phone ON personal.user_id = phone.user_id";
$result = mysqli_query($mysqli, $result);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result)) {
?>
<div class="container">
<table class="table">
<tr class="thead-dark">
<th>First name</th>
<th>Last name</th>
<th>Email</th>
<th>Phone number</th>
<th>Additional phone numbers</th>
<th colspan=""></td>
</tr>
<tr>
<td><?php echo $row["first_name"];?></td>
<td><?php echo $row["last_name"];?></td>
<td><?php echo $row["email"];?></td>
<td><?php echo $row["phone_number"];?></td>
<td><?php echo $row["phone_number2"];?></td>
</tr>
</table>
</div>
<?php
}
};
?>