PHP MySQL — генерация общего запроса, проблема с foreach

Я пытаюсь сгенерировать общий запрос из таблицы RunFieldName, но у меня возникает проблема, когда я пытаюсь сгенерировать общий запрос в моем цикле foreach. это занимает только мое последнее значение.

Вот моя структура таблицы RunFiledName:

+-----------------------+---------------+---------------+
| FieldName             | ShortNameEcht | duplicate     |
+-----------------------+---------------+---------------+
| 3SA46FEDa combined %  | 3SA46FED      | a combined %  |
| 3SA46FEDa combined of | 3SA46FED      | a combined of |
| 3SA46FEDa forward %   | 3SA46FED      | a forward %   |
| 3SA46FEDa forward of  | 3SA46FED      | a forward of  |
| 3SA46FEDa reverse %   | 3SA46FED      | a reverse %   |
| 3SA46FEDa reverse of  | 3SA46FED      | a reverse of  |
| 3SA46FEDb combined %  | 3SA46FED      | b combined %  |
| 3SA46FEDb combined of | 3SA46FED      | b combined of |
| 3SA46FEDb forward %   | 3SA46FED      | b forward %   |
| 3SA46FEDb forward of  | 3SA46FED      | b forward of  |
| 3SA46FEDb reverse %   | 3SA46FED      | b reverse %   |
| 3SA46FEDb reverse of  | 3SA46FED      | b reverse of  |
+-----------------------+---------------+---------------+

Мой желаемый результат должен выглядеть следующим образом:

INSERT INTO GenericTable SELECT '3SA46FED',`Reference`, `3SA46FEDa combined %`, `3SA46FEDa combined of`, `3SA46FEDa forward %`,`3SA46FEDa forward of`, `3SA46FEDa reverse %`, `3SA46FEDa reverse of`;

Вот что я пытался сделать с моим PHP-скриптом:

<?php
$SqlRun = 'Select distinct ShortNameEcht, FieldName from RunFieldName';
$SqlEcht = 'Select distinct FieldName from RunFieldName';
$resultSQLRUN=mysqli_query($conn, $SqlRun);
$resultSQLEcht=mysqli_query($conn,$SqlEcht) or die(mysqli_error($conn));
while($rowEcht = mysqli_fetch_array($resultSQLRUN))
{
$columnsEcht[]=$rowEcht['ShortNameEcht'];
$columnsDup[]=$rowEcht['FieldName'];
}
foreach (array_combine($columnsEcht,$columnsDup ) as $val=>$val2){
$sql='insert into PIVOTtestGeneric SELECT "'.$val.'",`Reference`,
`'.$val.''.$val2.'`,`'.$val.''.$val2.'`
,`'.$val.''.$val2.'`, `'.$val.''.$val2.'`, `'.$val.''.$val2.'`, `'.$val.''.$val2.'`,
`'.$val.''.$val2.'`,`'.$val.''.$val2.'`
,`'.$val.''.$val2.'`, `'.$val.''.$val2.'`, `'.$val.''.$val2.'`, `'.$val.''.$val2.'`
FROM runtable;';
echo $sql.'<br/>';

}
?>

Я также попытался изменить свой цикл в оператор foreach, выполнив:

    while($rowEchtDup = mysqli_fetch_array($resultSQLEcht))
{
$columnsDup[]=$rowEchtDup['FieldName'];
}
foreach($columnsEcht as $ind=>$val){
foreach($columnsDup as $indd=>val2){
$sql='insert into PIVOTtestGeneric SELECT "'.$val.'",`Reference`,
'.$val2.' from runtable;';
echo $sql;
}}

Но это не выводит то, что я хочу.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]