Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, estou precisando de uma ajudinha....
estou fazendo um script para importar produtos para o banco de dados a partir do xml...
só que.... alguns produtos já estão cadastrados. o que eu queria fazer era o seguinte...
quando o usuario for cadastrar o xml e os produts que já estiverem cadastrado cm o mesmo código de barras
seja apenas atualizado! como faç isso já tentei de várias maneiras....
ajudem ai por favor! segue abaixo o código que recebe e faz as gravações!
Detalhe, grava perfeitamente, só não consegui colocar uma condição que fizesse essa lógica!
<?php
session_start();
require '../../includes/connect.php';
//$sql = "INSERT INTO produtos (cProd, nProd, un, estoque, vlVenda, ncm, vlCompra, pICMS, perc_ipi) VALUES ";
$grava = "INSERT INTO produtos (cProd, cBarras, nProd, un, estoque, vlVenda, ncm, vlCompra, pICMS, perc_ipi) VALUES ";
$verifica = "";
$atualiza = "";
for( $i=0; $i<count($_POST['item']); $i++ )
{
$codigo = $_POST['codigo'][$i];
$cBarras = $_POST['cEAN'][$i];
$nProd = $_POST['xProd'][$i];
$ncm = $_POST['NCM'][$i];
$un = $_POST['uCom'][$i];
$esto = $_POST['qCom'][$i];
$estoque = str_replace(",", ".", $esto);
$vlC = $_POST['vUnCom'][$i];
$vlCompra = str_replace(",", ".", $vlC);
$vlV = $_POST['vVenda'][$i];
$vlVenda = str_replace(",", ".", $vlV);
$pICMS = $_POST['pICMS'][$i];
$perc_ipi = $_POST['perc_ipi'][$i];
$verifica .= "SELECT * FROM `produtos` WHERE `cBarras` = '$cBarras'; ";
$atualiza .= "UPDATE `produtos` SET `estoque` = `estoque` + '$estoque', `vlVenda` = '$vlVenda', `vlCompra` = '$vlCompra' WHERE `cBarras` = '$cBarras';";
$grava .= "('$codigo', '$cBarras', '$nProd', '$un', '$estoque', '$vlVenda', '$ncm', '$vlCompra', '$pICMS', '$perc_ipi'),";
}
//Remove a última vírgula da string SQL
$grava = substr($grava, 0, -1);
//echo $sql."<br/><br/>";
// $execute = mysqli_query($LOCAL, $sql);
// if ($execute !=0) {
// echo "deu";
// }else{
// echo "não deu";
// }
?>Obrigado ja havia achado outra forma de responder!
<?php
session_start();
require '../../includes/connect.php';
for( $i=0; $i<count($_POST['item']); $i++ ):
$codigo = $_POST['codigo'][$i];
$cBarras = $_POST['cEAN'][$i];
$nProd = $_POST['xProd'][$i];
$ncm = $_POST['NCM'][$i];
$un = $_POST['uCom'][$i];
$esto = $_POST['qCom'][$i];
$estoque = str_replace(",", ".", $esto);
$vlC = $_POST['vUnCom'][$i];
$vlCompra = str_replace(",", ".", $vlC);
$vlV = $_POST['vVenda'][$i];
$vlVenda = str_replace(",", ".", $vlV);
$pICMS = $_POST['pICMS'][$i];
$perc_ipi = $_POST['perc_ipi'][$i];
$sqlConsulta = "SELECT * FROM `produtos` WHERE `cBarras` = '$cBarras';";
// $stm->prepare($LOCAL, $sqlConsulta);
// $stm->execute();
// $produto = $stm->fetch(PDO::FETCH_OBJ);
$execute = mysqli_query($LOCAL, $sqlConsulta);
//echo $sqlConsulta;
$produtos = mysqli_fetch_object($execute);
if (empty($produtos)) {
$insert = "INSERT INTO `produtos` (cProd, cBarras, nProd, un, estoque, vlVenda, ncm, vlCompra, pICMS, perc_ipi) ";
$insert .= "VALUES ('$codigo', '$cBarras', '$nProd', '$un', '$estoque', '$vlVenda', '$ncm', '$vlCompra', '$pICMS', '$perc_ipi');";
//Remove a última vírgula da string SQL
//$insert = substr($insert, 0, -1);
$exeInsert = mysqli_query($LOCAL, $insert);
if ($exeInsert != 0) {
$msg = "Produtos importados com sucesso!<br><a href='javascript: fechar();'>Clique aqui para concluir!</a>";
}else{
$msg = "Não foi possivel importar os produtos!";
}
}else{
$update = "UPDATE PRODUTOS SET estoque = (estoque + '$estoque'), vlVenda = '$vlVenda', vlCompra = '$vlCompra', `d_uCompra` = NOW() WHERE cBarras = '$cBarras';";
$exeUpdate = mysqli_query($LOCAL, $update);
if ($exeUpdate != 0) {
$msg = "Produtos importados com sucesso!<br><a href='javascript: fechar();'>Clique aqui para concluir!</a>";
}else{
$msg = "Não foi possivel importar os produtos!";
}
}
endfor;
?>
Para inserir ignorando os já existentes.