@kinish_kinish

Как объединить строки таблицы?

Здравствуйте.Создал таблицу, для записи данных из трех форм.При отправке данных в таблицу, данные записываются, как три отдельных стройки.Пытался разобраться с функцией SELECT для объединения этих данных в одну строку, но что то не вышло.Хотелось бы увидеть, как с этой проблемой разбираются профессионалы, что бы понять, как это должно работать.

<?php
$Fam = filter_var(trim($_POST['Fam']), FILTER_SANITIZE_STRING);
$Nam = filter_var(trim($_POST['Nam']), FILTER_SANITIZE_STRING);
$Otch = filter_var(trim($_POST['Otch']), FILTER_SANITIZE_STRING);
$Email = filter_var(trim($_POST['Email']), FILTER_SANITIZE_STRING);
$Data = filter_var(trim($_POST['Data']), FILTER_SANITIZE_STRING);
$Tel = filter_var(trim($_POST['Tel']), FILTER_SANITIZE_STRING);



$servername = "localhost";
$username = "root";
$password = "";
$dbname = "base";


$mysql = new mysqli('localhost','root','','base');
$mysql ->query("INSERT INTO `table` (`Fam`, `Nam`, `Otch`, `Email`, `Data`, `Tel`) VALUES('$Fam', '$Nam', '$Otch', '$Email', '$Data', '$Tel')");
$mysql -> close();

header('location: vopros.html');

?>

<?php

$family = filter_var(trim($_POST['family']), FILTER_SANITIZE_STRING);
$avto = filter_var(trim($_POST['avto']), FILTER_SANITIZE_STRING);
$programm = filter_var(trim($_POST['programm']), FILTER_SANITIZE_STRING);
$game = filter_var(trim($_POST['game']), FILTER_SANITIZE_STRING);
$music = filter_var(trim($_POST['music']), FILTER_SANITIZE_STRING);
$social = filter_var(trim($_POST['social']), FILTER_SANITIZE_STRING);
$alcogol = filter_var(trim($_POST['alcogol']), FILTER_SANITIZE_STRING);
$airplane = filter_var(trim($_POST['airplane']), FILTER_SANITIZE_STRING);



$servername = "localhost";
$username = "root";
$password = "";
$dbname = "base";



$mysql = new mysqli('localhost','root','','base');
$mysql ->query("INSERT INTO `table` (`family`, `avto`, `programm`, `game`, `music`, `social`, `alcogol`, `airplane`) VALUES('$family', '$avto', '$programm', '$game', '$music', '$social', '$alcogol', '$airplane')");
$mysql -> close();

header('location: feedback.html');

?>

<?php


$a1 = filter_var(trim($_POST['a1']), FILTER_SANITIZE_STRING);
$a2 = filter_var(trim($_POST['a2']), FILTER_SANITIZE_STRING);



$servername = "localhost";
$username = "root";
$password = "";
$dbname = "base";


$mysql = new mysqli('localhost','root','','base');
$mysql ->query("INSERT INTO `table` (`a1`, `a2`) VALUES('$a1', '$a2')");
$mysql -> close();


?>

60a6af4711618592193001.jpeg
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
Vertenz
@Vertenz
Мечтетель
Прозвучит глупо, но лучший способ создать одну форму, но если никак, то вариантов много, и если не пользоваться сторонними библиотеками, фреймворками и тд, то...
К сожалению, не очень понятно, сразу ли приходят все данные или нет и есть ли регистрация. Если нет, и например $Fam, $Nam, $Otch, $Email, $Data, $Tel приходят сначала, отправляются в базу, в базе им присваивается id (судя по скрину, он автогенерируется у вас), берем id (так как это последняя запись, то Select max(`id`) as `maxid` from `table`), после этот id присваивается пользователю и сохраняется в сессию (если без регистрации), дальше получаете $family, $auto и тд, и добавляете в таблицу где id = id. (например id 17)
UPDATE table SET family = $family, auto = $auto WHERE id = 17;
И так далее.

Еще можно данные всех форм объединить на стороне пользователя (если нет перезагрузки страницы), то есть, собрать данные с разных форм в переменные и отправить их одним постом (не одной формой, так как этот вариант видимо не доступен для вас). Если используете во фронте vue или react, то там кучу возможность сохранить данные. Если нет, то главное чтобы не перегружалась страница.

Вытаскивать данные в таком виде, как у вас, не получиться, так как если одновременно будет отправлено больше одной формы, то могут перемешаться очередность данных. Это если вдруг вы придете к все такой же, как у вас схеме, а потом будете вытаскивать данные с id++, и их объединять.

Так же чтобы не мучиться, вы можете создать отдельный конфиг для дб, потом модели для ваших сущьностей (пользователь или что там у вас), и отдельно функции для работы с глобальными. Потом ловить post и распределять данные.
Например
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы