Jump to content

Carlos Antoliv

Members
  • Content count

    253
  • Joined

  • Last visited

  • Days Won

    1

Carlos Antoliv last won the day on October 16 2015

Carlos Antoliv had the most liked content!

Community Reputation

6 Regular

2 Followers

About Carlos Antoliv

Informações Pessoais

  • Sexo
    Masculino

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Carlos Antoliv

    Trigger ou Insert - qual a melhor prática ?

    blz...vou continuar tentando... agradeço mesmo
  2. Carlos Antoliv

    Trigger ou Insert - qual a melhor prática ?

    Entendi. Queria fazer uma trigger muito simples. É inserido no banco os dados em branco, como se fosse nullo... tipo ...conta o registro, vejo o id do registro que foi inserido, mas a linha está vazia... .....poderia me da uma luz nessse código? .............você me enviou aqueles dois exemplos, mas um dele eu já tinha feito, que foi onde cheguei perto de conseguir.
  3. Carlos Antoliv

    Trigger ou Insert - qual a melhor prática ?

    Certo. Mas com INSERT pode deixar o banco comprometido em algo?
  4. Carlos Antoliv

    Trigger ou Insert - qual a melhor prática ?

    Agradeço por dar uma atenção. Essa discussão ainda não localizei nesse sentido da pergunta. Embora, eu tenha visto algumas coisas, mas ficam outras no ar. Então, trigger seria melhor, na tua opinião, certo ? Nesse exemplo que você me enviou, eu já tinha feito algo mais ou menos, veja: CREATE TRIGGER tgr AFTER UPDATE ON tbl_pedido FOR EACH ROW BEGIN INSERT INTO nome_do_banco.tbl_historico_pedido VALUES(null, OLD.status_ped, NEW.status_log) END O que eu tento ver é o seguinte, na tebela pedidos existe o campo status_ped, onde ali pode conter "aberto, em preparo..." e por aí vai... status_log é onde salvo a informação que foi alterada. ....mas mas aparece uma mensagem de erro.
  5. Carlos Antoliv

    Trigger ou Insert - qual a melhor prática ?

    Senhores, bom dia. tenho um campo status. Então, a ideia é mudar o status. Consigo alterar o status quando necessário. Daí, pensei em todas vez que alterar, salvar o id do usuário, data, hora, o último status alterado... consigo fazer isso com INSERT, depois do UPDATE. Nao uso trigger. Até tentei fazer, mas não saiu como eu queria. Então, para os maiores entendedores do assunto, a melhor prática seria a TRIGGER ou INSERT ? Melhor prática ou o que mais funciona na prática ? Alguém poderia dissertar sobre isso ? Vlw..abço
  6. Senhores, tudo bem? Tô numa dúvida aqui... tá matando. Estou tentando contar a quantidade de itens do carrinho de compras. Este aqui é o input que aparece a quantidade de itens: <td><input type="text" name="prod[<?php echo $result['id']?>]" value="<?php echo $qtdProd = $result['quantity']?>" size="1" /> </td> Aparece normalmente a quantidade de itens. Ex: arroz 2 <<< este 2 fica dentro do input, onde posso alterá-lo. Minha ideia é mostrar na tela a quantidade total de itens que estão no carrinho. To usando esse código aqui pra aparecer o número total.... e até funciona: <?php if(isset($_SESSION['carrinho'])){ $amount = 0; $count = 0; $size = count($_SESSION['carrinho']); foreach($_SESSION['carrinho'] as $data){ $count++; $amount += $data['quantity']; if($size == $count){ echo "TOTAL = $amount"; } } } ?> O problema é que está exibindo o seguinte erro: Warning: Illegal string offset 'quantity' in C:\...\www\sistema\carrinho-de-compra\carrinho.php on line 90 Erro na linha 90, no caso, neste linha aqui: $amount += $data['quantity']; Daí travei um pouco. Alguém que poderia dar força ? Tá osso aqui. tmj
  7. Carlos Antoliv

    Como Inserir no banco com Foreach(dados vindo de input) ?

    Opa! Obg pela ajuda! Muito agradecido mesmo! Estudei faz um bom temo PHP e estou retomando esses estudos. Voce me relembrou algo que eu tinha esquecido. Por isso, também estou retomando esses estudo básicos. Ficou assim: $qtd_produto = (isset($_POST['qtd_produto'])) ? $_POST['qtd_produto'] : ''; $valor_produto = (isset($_POST['valor_produto'])) ? $_POST['valor_produto'] : ''; $fk_produto = (isset($_POST['fk_produto'])) ? $_POST['fk_produto'] : ''; // foreach($valor_produto as $valorProduto){//laço "antes" da tua ajuda foreach($valor_produto as $index => $valorProduto){//laço "depois" da tua ajuda. $quantidadeDesteProduto = $qtd_produto[$index]; $valor = $valor_produto[$index]; $id_prod = $fk_produto[$index]; $sql2 = "INSERT INTO tb_itempedido(fk_pedido, fk_produto, qtd_produto, valor_produto)VALUES(:last_id, :fk_produto, :qtd_produto, :valor_produto) "; $stm3 = $conn->prepare($sql2); $stm3->bindValue(':last_id', $last_id); $stm3->bindValue(':fk_produto', $id_prod); $stm3->bindValue(':qtd_produto', $quantidadeDesteProduto); $stm3->bindValue(':valor_produto', $valor); $retorno3 = $stm3->execute(); } tetsuo, vlw mesmo!
  8. Senhores, tudo bem? Estou tentando inserir no banco através do foreach. Funciona assim, são dados de uma sessão. Dei um foreach no insert para pegar os itens da tabela itemPedido e assim jogar no banco. Mas estou estou conseguindo inserir apenas um campo e não outros dois. Deu bug na mente. Poderiam dar uma forcinha ? Na pagina 1: <?php foreach($resultsCarts as $results) : ?> <input type="text" name="valor_produto[]" value="<?php echo $results['price'];?>" > <input type="text" name="qtd_produto[]" value="<?php echo $results['quantity'];?>" > <input type="text" id="fk_produto" name="fk_produto" value="<?php echo $result['id']; ?>" > <?php endforeach; ?> Depois de clicar no botao enviar, ele vai para a pagina onde faz o cadastro $qtd_produto = (isset($_POST['qtd_produto'])) ? $_POST['qtd_produto'] : ''; $valor_produto = (isset($_POST['valor_produto'])) ? $_POST['valor_produto'] : ''; Aqui recupera as informações vindas da página 1; foreach($valor_produto as $valorProduto){ $sql2 = "INSERT INTO tb_itempedido(fk_pedido, fk_produto, qtd_produto, valor_produto)VALUES(:last_id, :fk_produto, :qtd_produto, :valor_produto) "; $stm3 = $conn->prepare($sql2); $stm3->bindValue(':last_id', $last_id); $stm3->bindValue(':fk_produto', $fk_produto); $stm3->bindValue(':qtd_produto', $qtd_produto); $stm3->bindValue(':valor_produto', $valorProduto); $retorno3 = $stm3->execute(); } Nesse laço, pego apenas os valores; mas quero as quantidades também, assim como outro campo... E deu um nó. Podem me ajudar?
  9. Então, eh algo até simples, problema de lógica e tudo. Eu tinha feito, mas o codigo sumiu do nada e nao lembro mais da lógica que eu empregara. O enredo éh assim tabela_grupo_produtos e tabela tabela_produtos Na tabela_grupo_produtos tem: - informatica; - eletrodomestico; - brinquedos; na tabela_produtos tem os podutos que são ligados a tabela de grupo de grupo de produtos: - informatica->notebook - informatica->computador - informatica->roteador - eletrodomestico->geladeira - eletrodomestico->microondas - eletrodomestico->fogao - brinquedos->lego - brinquedos->boneca - brinquedos->carrinhos O que estou tentando fazer é o seguinte: - informatica->notebook ->computador ->roteador - eletrodomestico->geladeira ->microondas ->fogao - brinquedos- >lego -> boneca ->carrinhos Ou seja, mostra na tela pelo "GRUPO" de produtos. fiz um select no banco.... e tambem um foreach, mas tem algo que ta errado. Cheguei até executar dois selects distintos: EXEMPLO: <!--#################### CÓDIGO SESSÃO ################################ --> <?php session_start(); echo "Usuario: ". $_SESSION['usuarioNome']; echo "<br>"; echo "Codigo: ". $idSessao = $_SESSION['usuarioId']; ?> <br> <a href="sair.php">Sair</a> <!-- #####################FIM CODIGO SESSÃO ############################### --> <?php $servername = "localhost"; $username = "root"; $password = ""; $database = ""; try { $conexao2 = new PDO('mysql:host=localhost;dbname=banco', $username, $password); $conexao2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } $sql2 = "SELECT pdos.fk_usuarios, pdos.nome_prod, pdo.nome_produto, nome_grupo_prod, pdos.foto, pdos.desc_prod, pdos.peso_liq_prod, pdos.qtd_prod, pdos.id_prod, pdos.un_medida FROM tb_produtos AS pdos JOIN tb_produto AS pdo ON pdos.nome_prod = pdo.id_produto JOIN tb_grupo_prod AS gpdo ON gpdo.id_grupo_prod = pdos.fk_tb_grupo_prod INNER JOIN usuarios As usu ON pdos.fk_usuarios = usu.id "; $stm2 = $conexao2->prepare($sql2); $stm2->execute(); $kit3 = $stm2->fetchAll(PDO::FETCH_OBJ); ?> <?php require 'database/conexao.php'; // Recebe o termo de pesquisa se existir $termo = (isset($_GET['termo'])) ? $_GET['termo'] : ''; // Verifica se o termo de pesquisa está vazio, se estiver executa uma consulta completa if (empty($termo)): $conexao = conexao::getInstance(); $sql = 'SELECT DISTINCT item.fk_tb_produtos, usu.nome, prod.nome_produto, prods.desc_prod, prods.peso_liq_prod, prods.un_medida, item.fk_tb_kit, kit.nome_kit, kit.preco_kit, prods.qtd_prod, kit.id_nome_kit, kit.desc_kit FROM tb_itemprodkit item /* tb_itemprodkit*/ INNER JOIN usuarios usu /* usuarios*/ ON item.fk_usuarios = usu.id INNER JOIN tb_produtos prods /* tb_produtos */ ON item.fk_tb_produtos = prods.id_prod INNER JOIN tb_kit kit /*tb_kit */ ON item.fk_tb_kit = kit.id_nome_kit INNER JOIN tb_produto prod ON prods.nome_prod = prod.id_produto WHERE fk_usuario = 5 GROUP BY kit.id_nome_kit '; $stm = $conexao->prepare($sql); $stm->execute(); $kit = $stm->fetchAll(PDO::FETCH_OBJ); else: // Executa uma consulta baseada no termo de pesquisa passado como parâmetro $conexao = conexao::getInstance(); $sql = 'SELECT * FROM tb_kit WHERE nome_kit LIKE :nome_kit OR desc_kit LIKE :desc_kit'; $stm = $conexao->prepare($sql); $stm->bindValue(':nome_kit', $termo.'%'); $stm->bindValue(':desc_kit', $termo.'%'); $stm->execute(); $kit = $stm->fetchAll(PDO::FETCH_OBJ); endif; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Listagem KITs </title> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="css/custom.css"> </head> <body> <div class='container'> <fieldset> <!-- Cabeçalho da Listagem --> <legend><h1>Listagem de Kits</h1></legend> <!-- Formulário de Pesquisa --> <form action="" method="get" id='form-contato' class="form-horizontal col-md-10"> <label class="col-md-2 control-label" for="termo">Pesquisar</label> <div class='col-md-7'> <input type="text" class="form-control" id="termo" name="termo" placeholder="Infome o Nome ou E-mail"> </div> <button type="submit" class="btn btn-primary">Pesquisar</button> <a href='index.php' class="btn btn-primary">Ver Todos</a> </form> <!-- Link para página de cadastro --> <a href='kit_cadastro.php' class="btn btn-success pull-right">Cadastrar Kit</a> <div class='clearfix'></div> <?php if(!empty($kit)):?> <!-- Tabela de Clientes --> <table class="table table-striped"> <tr class='active'> <th>Foto</th> <th>produto</th> <th>Nome</th> <th>Descrição</th> <th>Preço</th> <th>Ação</th> </tr> <?php foreach($kit as $kit2):?> <tr> <td><img src='fotos/<?=$kit2->foto?>' height='40' width='40'></td> <?php foreach($kit3 as $kit4):?> <td> <?=$kit4->nome_produto.'<br>'; ?> </td><?php endforeach; ?> <td><?=$kit2->nome_kit?></td> </td> <td><?=$kit2->desc_kit?></td> <td><?='R$ '.$kit2->preco_kit.',00'?></td> <td> <a href='kit_editar.php?id_nome_kit=<?=$kit2->id_nome_kit?>' class="btn btn-primary">Editar</a> <a href='javascript:void(0)' class="btn btn-danger link_exclusao" rel="<?=$kit2->id_nome_kit?>">Excluir</a> </td> </tr> <?php endforeach;?> </table> <?php else: ?> <!-- Mensagem caso não exista clientes ou não encontrado --> <h3 class="text-center text-primary">Não existe Kit cadastrados!</h3> <?php endif; ?> </fieldset> </div> <script type="text/javascript" src="js/custom.js"></script> </body> </html> ....se alguem puder ajudar...
  10. Opa!! vou postar o código inteiro. <?php session_start(); echo "Usuario: ". $_SESSION['usuarioNome']; echo "<br>"; echo "Codigo: ". $idSessao = $_SESSION['usuarioId']; ?> <br> <a href="sair.php">Sair</a> <?php require_once('conexao_lisbox.php'); $sql = "SELECT * FROM tb_kit kit INNER JOIN usuarios usu ON kit.fk_usuario = usu.id WHERE fk_usuario = '".$_SESSION['usuarioId']."'"; $dados = mysqli_query($conn,$sql) or die(mysql_error()); $linha = mysqli_fetch_assoc($dados); $total = mysqli_num_rows($dados); // Verifica se a conexão não funcionou... if (!$conn) { die("A conexão com o banco de dados falhou: " . mysqli_connect_error()); } else { ?> <?php //#################CONEXAO COM O BANCO DE DADOS###################### try { $conexao = new PDO("mysql:host=localhost; dbname=db_sistema", "root", ""); $conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $conexao->exec("set names utf8"); } catch (PDOException $erro) { echo "Erro na conexão:" . $erro->getMessage(); } // Verificar se foi enviando dados via POST if ($_SERVER['REQUEST_METHOD'] == 'POST') { $id_prod = (isset($_POST["id_prod"]) && $_POST["id_prod"] != null) ? $_POST["id_prod"] : ""; $nome_prod = (isset($_POST["sl_grupo"]) && $_POST["sl_grupo"] != null) ? $_POST["sl_grupo"] : ""; $check1 = (isset($_POST["check"]) && $_POST["check"] != null) ? $_POST["check"] : ""; //$check1 = $_POST["check"]; $chk = "" ; //sabendo = $_POST['check']; //$check = implode(",",$check2); } else if (!isset($id_prod)) { // Se não se não foi setado nenhum valor para variável $id $id_prod = (isset($_GET["id_prod"]) && $_GET["id_prod"] != null) ? $_GET["id_prod"] : ""; $nome_prod = NULL; $idSessao = NULL; $check = NULL; }//////////////////////FIM VERIFICAÇÃO POST/////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////// //////////////////CODIGO PARA SALVAR REGISTRO///////////////////////////////////////////////////////////// if (isset($_REQUEST["act"]) && $_REQUEST["act"] == "save" && $nome_prod != "") { try { //O código abaixo faz o seguinte: atualiza o registro de modo que não inserire no novo registro. //esse if faz com os registros sejam atualizados, caso existem dados no formulario; if ($id_prod != "") {// SE diferente de VAZIO, ENTÃO faça: $stmt = $conexao->prepare("UPDATE tb_itemProdKit SET fk_tb_kit=?, fk_usuarios=?, fk_tb_produtos=? WHERE id_itemPrdoKit = ?"); $stmt->bindParam(4, $id_prod); //ao inserir a linha de código do UPDATE, essa linhas foi criada; } else { //SENÃO execute alinha de código abaixo: foreach($check1 as $check) { $stmt = $conexao->prepare("INSERT INTO tb_itemProdKit (fk_tb_kit, fk_usuarios, fk_tb_produtos) VALUES (?, ?, ?)"); $stmt->bindParam(1, $nome_prod); $stmt->bindParam(2, $idSessao); $stmt->bindParam(3, $check); $stmt->execute($check); } if ($stmt->execute()) { if ($stmt->rowCount() > 0) { echo "Dados cadastrados com sucesso!"; $id_prod = null; $nome_prod = null; $idSessao = null; $check = null; header("Location: item-produto-kit.php");exit; } else { echo "Erro ao tentar efetivar cadastro"; } } else { throw new PDOException("Erro: Não foi possível executar a declaração sql"); } } } catch (PDOException $erro) { echo "Erro: " . $erro->getMessage(); } }//////////////////FIM CÓDIGO PARA SALVAR REGISTRO//////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////// ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Documento sem título</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script><!-- Via MaxCDN --> </head> <body> <form action="?act=save" method="post" name="form1"> <input type="hidden" name="id_prod" <?php //Preenche o id no campo id com um valor "value" if (isset($id_prod) && $id_prod != null || $id_prod != "") { echo "value=\"{$id_prod}\""; } ?> /> <p> Grupo Alimentício: <select name="sl_grupo" id="sl_grupo"> <option value="" selected = selected>Escolha um Grupo Alimentício</option> <?php if($total > 0) { do { echo "<option value='".$linha['id_nome_kit']."'>".$linha['nome_kit']."</option>"; }while($linha = mysqli_fetch_assoc($dados)); } ?> </select> <p>Foto: <label for="sl_marca">:</label> </p> <p>&nbsp;</p> <p> <input type="submit" name="submit" id="submit" value="Enviar"> </p> <p><strong>Legenda: kg= Kilo; gm= Gramas; lt= Litros;</strong></p> <table border ="1" width="58%"> <tr class="celulas"> <th width="8%">( )</th> <th width="20%">Produto</th> <th width="47%">Descricao</th> <th width="8%">kg/gm/lt</th> <th width="8%">Qtdade</th> </tr> <?php ////////////////////BLOCO QUE REALIZA O PAPEL DO READ - RECUPERA OS DADOS E APRESENTA NA TELA try { //$idSessao FILTRO pela variável da sessão'".$_SESSION['usuarioId']."' $stmt = $conexao->prepare("SELECT DISTINCT prods.nome_prod, prod.nome_produto, prods.un_medida, prods.desc_prod, prods.peso_liq_prod, prods.qtd_prod, prod.id_produto, usuarios.nome, prods.id_prod FROM tb_produtos prods INNER JOIN usuarios ON prods.fk_usuarios = usuarios.id INNER JOIN tb_produto prod ON prod.id_produto = prods.nome_prod INNER JOIN tb_kit kit ON prods.fk_usuarios = kit.fk_usuario WHERE kit.fk_usuario = '".$_SESSION['usuarioId']."' "); if ($stmt->execute()) { while ($rs = $stmt->fetch(PDO::FETCH_OBJ)) { echo "<tr>"; echo "<td><input type='checkbox' name='check[]' id='check' value='".$rs->id_prod."'</td><td class='lista_usuario'>".$rs->nome_produto."</td><td class='lista_usuario'>".$rs->desc_prod."</td><td class='lista_usuario'>".$rs->peso_liq_prod ."</td>" ; echo "</tr>"; } }else { echo "Erro: Não foi possível recuperar os dados do banco de dados"; } } catch (PDOException $erro) { echo "Erro: ".$erro->getMessage(); } echo "</form>" ?> </table> </body> </html> <?php mysqli_close($conn); } ?>
  11. Olá, senhores. Sei que existem diversos tópicos por aí sobre esse assunto, contudo, não consegui solucionar o problema, mesmo depois de 1 dia tentando fazer algo até simples. Seguinte, estou pegando o id de um produto e tentando jogar em outra tabela, pelo checkbox. ex: id produto 23 lapis 43 caneta pelo checkbox, a pessoa escolhe o produto e adicona em uma lista, que é outro banco. Se pessoa selecionar mais de 1 item da lista, o laço só envia para o banco apenas 1 item de qualquer forma. Vou postar o Código: Código do INSERT: $check1 = (isset($_POST["check"]) && $_POST["check"] != null) ? $_POST["check"] : ""; foreach($check1 as $check){ $stmt = $conexao->prepare("INSERT INTO tb_itemProdKit (fk_tb_kit, fk_usuarios, fk_tb_produtos) VALUES (?, ?, ?)"); $stmt->bindParam(1, $nome_prod); $stmt->bindParam(2, $idSessao); $stmt->bindParam(3, $check); if ($stmt->execute()) { if ($stmt->rowCount() > 0) { echo "Dados cadastrados com sucesso!"; $id_prod = null; $nome_prod = null; $idSessao = null; $check = null; header("Location: item-produto-kit.php");exit; } else { echo "Erro ao tentar efetivar cadastro"; } } else { throw new PDOException("Erro: Não foi possível executar a declaração sql"); } } } } catch (PDOException $erro) { echo "Erro: " . $erro->getMessage(); } Agora o código do checkbox: if ($stmt->execute()) { while ($rs = $stmt->fetch(PDO::FETCH_OBJ)) { echo "<tr>"; echo "<td><input type='checkbox' name='check[]' id='check' value='".$rs->id_prod."'</td><td class='lista_usuario'>".$rs->nome_produto."</td><td class='lista_usuario'>".$rs->desc_prod."</td><td class='lista_usuario'>".$rs->peso_liq_prod ."</td>" ; echo "</tr>"; } }else { echo "Erro: Não foi possível recuperar os dados do banco de dados"; } } catch (PDOException $erro) { echo "Erro: ".$erro->getMessage(); } echo "</form>" ?> Está cadastrando apenas 1 item e não múltiplos itens. abço!!
  12. ...nesse meio tempo sim... mas... ...é sempre bom ouvir uma opinião de um colega..rs ...
  13. Prezados colegas, seguinte: criei uma lista que puxa informações do banco de dados. Usei o ListView pra isto. Depois seleciono qualquer item da lista e este item aparece em outra tela mais detalhadamente. Até aí tudo bem.... mas se eu quiser, por exemplo, escolher este item.....? daí volto lá na lista, clico no item da lista, vai remeter para a tela que contém do detalhe do item escolhido, nesta tela tem um botão ADICIONAR... e aí assim vai.... ou seja... vou escolhendo os itens do listview e criando uma lista a partir dessa lista... e quando eu escolher todos os itens que queroo...agora é hora de enviar para o banco.. só que tipo..traveii.. nao to conseguindo pensar na lógica.... em php sei fazer com a variável de sessão... só q em java, portanto, android, não estou sabendo fazer... podem me ajudar? o que sugerem? Não saco muito java.
  14. Carlos Antoliv

    UPDATE na mesma Página?

    .....opa! Blz.. agradeço polo retorno... vou tentar implementar... e volto pra postar... abç!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.