PHP Сохраните поле bind_result в качестве значения, разделенного запятыми, и вставьте его в другую таблицу. - PullRequest
0 голосов
/ 30 марта 2020

Я новичок ie. Я пытаюсь получить все users_id из users таблицы в виде значения через запятую, например 1001,1002,1003 etc, а затем вставить их в виде значения через запятую непосредственно в столбце tmpOrder таблица sq_id. Пока что я написал код ниже, но он не вставляет значение через запятую. Если я использую foreach l oop, он вставляет отдельную строку для каждого user_id, но мне нужно вставить одну строку со всеми идентификаторами, разделенными запятыми в sq_id столбце

 $sql="SELECT users.id as user_id,age FROM users";

 $stmt = $con->prepare($sql);                 
 $stmt->execute();
 $stmt->bind_result($data[0], $data[1]);

 while ($stmt->fetch()) {
   echo $data[0];
 }

 $stmt1 = $con->prepare("INSERT INTO tmpOrder(id,sq_id) 
 VALUES ($id,implode(',',$data[0]");

 $stmt1->execute();

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Надеюсь, что это полезно ...

INSERT 
INTO tmpOrder(id,sq_id) 
VALUES ( 
  $id,
  ( 
    SELECT
      GROUP_CONCAT(users.id SEPARATOR ',') 
    FROM
      users
  )
) 
0 голосов
/ 30 марта 2020

Я бы использовал один запрос, используя GROUP_CONCAT, чтобы создать разделенный запятыми список из users и INSERT, который непосредственно в tmpOrder, используя INSERT ... SELECT запрос:

$sql = "INSERT INTO tmpOrder(id, sq_id)
        SELECT ?, GROUP_CONCAT(id) 
        FROM users";
$stmt = $con->prepare($sql);
$stmt->bind_param('i', $id);
$stmt->execute();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...