Дублировать Записи в массовом масштабе, - Запустить запрос, чтобы каждая Запись отображается
у Меня есть Таблица, где отображается только учетные записи с типом='фиксированный'
То, что я хотел бы выполнить, - это запустить запрос и дублировать все Записи, таблицы только один раз. В настоящее время мне удалось не только проводить дублирование учетных записей, по одной, а не все результаты отображаются, что уже помогает, но не решает мою проблему, хе-хе.
Я бегу следующий запрос:
$tSqlDup = $tPdo->prepare("INSERT INTO Счета (Data_Vencimento, Имя, Цедент, Centro_Custo, Цели, Значение)SELECT Data_Vencimento, Имя, Цедент, Centro_Custo, Цели, Значение FROM tab_contas WHERE ID = '{$tGet}'");
$tSqlDup ->execute();
идея этого снять работу пользователя остаться переоформления счетов, которые будут иметь данные точно такие же, может быть, дифференцируя их погашения и значение... и при нажатии на кнопку все значения фиксированного типа, которые будут дубликаты...
оставлю ниже вся структура HTML ниже:
<table class="table">
<thead>
<tr style="background-color: #428bca;">
<th>Vencimento</th>
<th>Nome da Conta</th>
<th>Cedente</th>
<th>Finalidade</th>
<th>CC</th>
<th>Valor da Ultima Conta</th>
<th>Duplicar</th>
</tr>
</thead>
<tbody>
<?php
require_once("includes/BaseDeDados.php");
require_once("includes/LogSistema.php");
$tQuantidade = 100;
$tPagina = (isset ($_GET['pg'])) ? (int)$_GET['pg'] :1;
$tIniciar = ($tQuantidade * $tPagina) - $tQuantidade;
$tSql = $tPdo->prepare("SELECT * FROM Contas WHERE Tipo='F' ORDER BY ID DESC LIMIT $tIniciar, $tQuantidade");
$tSql ->execute();
while($tMC = $tSql->fetch(PDO::FETCH_ASSOC))
{
//Faz o explode da Data para transformar data do formato US para o formato BR
$data = $tMC['Data_Vencimento'];
$data_nova = explode("-",$data);
// Calcula Mês atual + 1
$mes = strtotime("+1 month");
echo "
<tr>
<td>$data_nova[2]/".date('m', $mes)."/$data_nova[0]</td>
<td><a href='?controle=***ARQUIVO***&CodC=".codificarUrl($tMC['ID'])."' rel='tooltip' title='Editar Esta Conta'>".utf8_encode($tMC['Nome'])."</td>
<td>{$tMC['Cedente']}</td>
<td>{$tMC['Finalidade']}</td>
<td>{$tMC['Centro_Custo']}</td>
<td>R$ {$tMC['Valor']}</td>
<!--- ////////////////////////////
ESTE E O BOTAO QUE RODA A CONSULTA PARA DUPLICAR A CONTA COM O ID ESCOLHIDO, POREM GOSTARIA DE AO INVES TER DE FAZER ISTO DE CONTA EM CONTA, REALIZAR EM TODAS DE UMA VEZ...
/////////////////////////////////-->
<td><a href='?controle=***ARQUIVO***&Acao=Duplicar&CodC=".codificarUrl($tMC["ID"])."' role='button' rel='tooltip' title='Duplicar este Arquivo'></a></td>
</tr>";
}
if (isset($_GET['Acao']) && isset($_GET['CodC']))
{
# É AQUI AONDE É RODADA A CONSULTA QUE FAZ A DUPLICAÇÃO DA CONTA
$tGet = decodificarUrl($_GET['CodC']);
$tSqlDup = $tPdo->prepare("INSERT INTO Contas (Data_Vencimento, Nome, Cedente, Centro_Custo, Finalidade, Valor) SELECT Data_Vencimento, Nome, Cedente, Centro_Custo, Finalidade, Valor FROM tab_contas WHERE ID = '{$tGet}'");
$tSqlDup ->execute();
}
?>
<tbody>
</table>
PS: СС имеет кнопки справа от таблицы, и кнопка выше приведенной выше таблицы, не работает, будет кнопка, которая вдвое все сразу, в то время как кнопки справа от каждой Учетной записи, кнопки, которые дублируют один раз...
1 answers
И Вы можете продолжать использовать свой запрос, который делает insert, за один раз, просто помещая ее в цикл, который проходит через все элементы.
$query_itens = $tPdo->prepare("SELECT ID FROM tab_contas WHERE SUA_CONDICAO_AQUI")->execute();
$itens = $query_itens->fetchAll();
$tSqlDup = $tPdo->prepare("INSERT INTO Contas (Data_Vencimento, Nome, Cedente, Centro_Custo, Finalidade, Valor)SELECT Data_Vencimento, Nome, Cedente, Centro_Custo, Finalidade, Valor FROM tab_contas WHERE ID = ?");
foreach($itens as $item) {
$tSqlDup->execute([$item->id]);
}
Измените условие первого запроса, чтобы соответствовать вашему делу.