Сохранить в одной строке результат переменной PHP (while / loop) из запроса mysql - PullRequest
0 голосов
/ 04 января 2019

Когда я запрашиваю, результат состоит из более чем одного значения (WHILE / LOOP), например:

   $query_sku = mysqli_query($connect, "SELECT t.column_name
        FROM skus AS s
            INNER JOIN table AS t ON t.column_id = s.column_id
                WHERE s.id_sku = '{$id_sku}'");
WHILE($reg = mysqli_fetch_object($query_sku )){
  $variable = $reg->column_name;
echo "<br/">;
}

Результат этого запроса / while:

BATERIA  
PARA
CÂMERA
CANON
PowerShot ELPH 330 HS

Когда я сохраняю значения в базе данных, они сохраняются в разных строках.

Но я хочу, чтобы вы сохранили в один ряд:

BATERIA PARA CÂMERA CANON PowerShot ELPH 330 HS

Как я могу это сделать? Спасибо!

Я уже пытался сделать это:

while($reg = mysqli_fetch_object($query_sku ))
    $variable .= " ".$reg->column_name;

Но результатом является повторение тех же значений:

PowerShot ELPH 330 HS BATTERY (RECHARGEABLE)PowerShot ELPH 330 HS BATTERY (RECHARGEABLE) CAMERAPowerShot ELPH 330 HS BATTERY (RECHARGEABLE) CAMERA CANON

Ответы [ 2 ]

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

Оставляя в стороне уязвимости SQL-кода в вашем коде. Вы можете сгладить результат в один столбец следующим образом:

$variables = [];
while($reg = mysqli_fetch_object($query_sku)){
  $variables[] = $reg->column_name;
}

$oneColumn = implode(' ', $variables);
0 голосов
/ 04 января 2019

Вы можете получить результат напрямую с помощью выбора

SELECT group_concat( t.column_name  SEPARATOR ' ')
FROM skus AS s
INNER JOIN table AS t ON t.column_id = s.column_id
WHERE s.id_sku = '{$id_sku}'

и для вставки вы можете использовать вставку / выбрать

insert into my_table  (my_col)
SELECT group_concat( t.column_name  SEPARATOR ' ')
FROM skus AS s
INNER JOIN table AS t ON t.column_id = s.column_id
WHERE s.id_sku = '{$id_sku}'

В любом случае, вам следует взглянуть на обязательный параметр и избегать использования php var в sql (вы рискуете по sqlinjectio)

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