"Как объединить данные двух массивов и вставить в базу данных MySQL?" - PullRequest
0 голосов
/ 04 января 2019

У меня есть два запроса MySQL для вставки данных в две разные таблицы.Результаты запросов следующие:

  1. INSERT INTO table1 (ans1,ans2,ans3,ans4,ans5) VALUES (0,0,0,0,0),(1,1,1,0,0),(0,0,0,0,0)

  2. INSERT INTO table2 (uid,cid,sid) VALUES (1,abc,123),(2,def,456),(3,ghi,789)

Как можно объединить эти два результата, чтобы результат выглядел как

INSERT INTO table3 (uid,cid,sid,ans1,ans2,ans3,ans4,ans5)
VALUES
    (1,abc,123,0,0,0,0,0),
    (2,def,456,1,1,1,0,0),
    (3,ghi,789,0,0,0,0,0)

1 Ответ

0 голосов
/ 04 января 2019

Я думаю, что-то вроде этого:

<?php
//First we need connect to database
$server = "localhost";
$Userdb = "admin";
$Passworddb = "password";
$database = "db";
$conn = mysqli_connect($server, $Userdb, $Passworddb, $database);
mysqli_set_charset($conn, "utf8");

//Getting values - for this example it is static
//For concate we need values as array => explode()
$colums1 = "ans1,ans2,ans3,ans4,ans5";
$values1 = explode("),(", substr("(0,0,0,0,0),(1,1,1,0,0),(0,0,0,0,0)", 1, -1));
$colums2 = "uid,cid,sid";
$values2 = explode("),(", substr("(1,abc,123),(2,def,456),(3,ghi,789)", 1, -1));

//Query for table1
$command = "INSERT INTO table1 (".$colums1.") VALUES ".$values1;
mysqli_query($conn, $command) or die(mysqli_error($conn));

//Query for table2
$command = "INSERT INTO table2 (".$colums2.") VALUES ".$values2;
mysqli_query($conn, $command) or die(mysqli_error($conn));

//We need to concate values so =>
//=> For every index of $values1 add at same index into $values3 concated $values1 and $values2

$values3 = array();
for ($x = 0; $x <= count($values1); $x++) { 
    $values3[$x] = "(".$values2[x].",".$values1[$x].")";
}

//Query for table3
$command = "INSERT INTO table3 (".$colums2.",".$colums1.") VALUES (".implode("),(", $values3).")";
mysqli_query($conn, $command) or die(mysqli_error($conn));
?>

Я думаю, что это ДОЛЖНО работать (никто никогда не знает :))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...