mpaquinho Postado Outubro 6, 2014 Denunciar Share Postado Outubro 6, 2014 Gostaria de capturar os dados da tabela produto no input checkbox para posterior altera-las. Estou Fazendo assim , Classe: venda.php <?php include 'conexao.php'; class Venda{ var $id; var $cliente_id; var $produto_id; var $data; public function Cadastrar($cliente_id,$produto_id,$data){ foreach ($produto_id AS $valores ){ $cliente_id; $sql = "INSERT INTO venda(cliente_id,produto_id,data) "; $sql .= " VALUES('$cliente_id','$valores',now())"; $query = mysql_query($sql); } if(mysql_affected_rows() > 1){ echo "<div class='bloco'>"; echo "<h5>Dados Cadstrardos com sucesso</h5>"; echo "</div>"; } } public function Buscar($busca){ if(empty($busca)){ echo "<div class='bloco'>"; echo "<h5>Campo busca vazio!</h5>"; echo "</div>"; } else{ $sql = " SELECT * FROM venda "; $sql.= " INNER JOIN produto ON (venda.produto_id = produto.id) " ; $sql.= " INNER JOIN cliente ON (venda.cliente_id = cliente.id) " ; $sql.= " WHERE venda.cliente_id = '$busca' "; $query = mysql_query($sql); $num_linhas = mysql_num_rows($query); if($num_linhas > 0){ while($linhas = mysql_fetch_array($query)){ $produto = $linhas; echo "<pre>"; print_r($produto); } } else{ echo "<div class='bloco'>"; echo "<h5>Cliente nao encontrado</h5>"; echo "</div>"; } } } } e a tela assim : <?php include 'cabecalho.php'; include 'classe/venda.php'; include 'menu.php'; ?> <body> <form action="" method="post"> <div class="conteudo"> <?php if(isset($_POST['opcao'])){ $obj = new Venda(); if($_POST['opcao'] == 'Cadastrar'){ $obj->Cadastrar($_POST['cliente_id'], $_POST['produto_id'], NULL); } elseif($_POST['opcao'] == "buscar"){ $cliente_id = $_POST['cliente_id']; if(isset($_POST['produto_id'])) $produto_id = $_POST['produto_id']; if(empty($_POST['busca'])){ echo "<div class='bloco'>"; echo "<h5>Campo busca vazio!</h5>"; echo "</div>"; } else{ $busca = $_POST['busca']; $sql = " SELECT * FROM venda "; $sql.= " INNER JOIN produto ON (venda.produto_id = produto.id) " ; $sql.= " INNER JOIN cliente ON (venda.cliente_id = cliente.id) " ; $sql.= " WHERE venda.cliente_id = '$busca' "; $query = mysql_query($sql); $num_linhas = mysql_num_rows($query); if($num_linhas > 0){ while($linhas = mysql_fetch_array($query)){ $cliente_id = $linhas['cliente_id']; $produto[] = $linhas['produto_id']; } } else{ echo "<div class='bloco'>"; echo "<h5>Cliente nao encontrado</h5>"; echo "</div>"; } } } } ?> <p>Busca</p> <p> <select name="busca"> <option value="">Escolha o cliente</option> <?php $consulta = " select * from cliente"; $query_consulta = mysql_query($consulta); while($lin = mysql_fetch_array($query_consulta)):?> <option value="<?php echo $lin['id']?>"<?php if(isset($_POST['busca']))if($_POST['busca'] == $lin['id'])echo 'selected';?>><?php echo $lin['nome'];?></option> <?php endwhile; ?> </select> <input type="submit" name="opcao" value="buscar"> </p> <p>Cliente</p> <p><select name="cliente_id"> <option value=""></option> <?php $sql = " select * from cliente"; $query = mysql_query($sql); while($linha = mysql_fetch_array($query)):?> <option value="<?php echo $linha['id']?>"<?php if(isset($cliente_id) && $cliente_id == $linha['id']) echo 'selected'?>><?php echo $linha['nome'];?></option> <?php endwhile; ?> </select> </p> <p>Produtos</p> <p> <?php if(isset($produto)){ $pro = "SELECT * from produto "; $pro_q = mysql_query($pro); while($lin = mysql_fetch_array($pro_q)){ $produto_id = $lin['id']; $valores = $produto; ?> <input type="checkbox" name="produto_id[]" value="<?php echo $produto_id;?>" <?php if(isset($valores) && $valores == $produto_id)echo 'checked'; ;?>> <?php echo $lin['produto'];?> </p> <?php } } else{ $pro = "SELECT * from produto "; $pro_q = mysql_query($pro); while($lin = mysql_fetch_array($pro_q)): ?> <input type="checkbox" name="produto_id[]" value="<?php echo $lin['id'];?>" <?php if(isset($_POST['id']) && ($_POST['id'] == $lin['id']))echo 'checked' ;?>> <?php echo $lin['produto'];?> </p> <?php endwhile; } ?> <p> <input type="submit" name="opcao" value="Cadastrar"> <input type="submit" name="opcao" value="Alterar"> </p> </div> </form> Por favor, ajuda-me! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Sandro2011 Postado Outubro 6, 2014 Denunciar Share Postado Outubro 6, 2014 boa tarde, qual o erro que está apresentando? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mpaquinho Postado Outubro 6, 2014 Autor Denunciar Share Postado Outubro 6, 2014 A consulta não retorna os produtos ( no checkbox ) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Sandro2011 Postado Outubro 6, 2014 Denunciar Share Postado Outubro 6, 2014 Não apresenta nenhum produto? ou: não está dando o 'check' no produto '$produto' dentro dos checkbox Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mpaquinho Postado Outubro 6, 2014 Autor Denunciar Share Postado Outubro 6, 2014 Sandro2011, Não sei se você testou , mas eu consigo cadastrar os dados do cliente , produtos tudo na tabela venda . Onde eles estão relacionadas .. Quando eu faço a busca , que está no campo ( <select name="busca">... ) ele me traz o nome correto , mas os produtos ao qual eu cadastrei no banco não. Não sei como pegar estes dados para ficar selecionado . Tentei com o Foreach, mas ele repetiu os arquivos selecionados e os não selecionados , quer dizer duplicou-o... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Sandro2011 Postado Outubro 7, 2014 Denunciar Share Postado Outubro 7, 2014 Bom dia, sinceramente, eu não testei o código. Não tem como fazer isso. O que eu posso fazer é ajudar a encontrar os erros. Você está me dizendo que o código está retornando códigos duplicados? -A sua select não está muito abrangente? Neste trecho: $pro = "SELECT * from produto "; $pro_q = mysql_query($pro); a sua select pega TODOS os registros que estão na tabela produto. É isso mesmo que você quer? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mpaquinho Postado Outubro 7, 2014 Autor Denunciar Share Postado Outubro 7, 2014 Este select esta vindo correto , mas eu estou fazendo uma outra busca acima que tras somente os que estão vinculados... Exemplo : Cadastrado na tabela venda.. Marcos escolheu Mouse lapis caneta gravei estes dados na tabela venda .. quando faço a busca para ver o que o Marcos tem em seus itens , ele não retorna selecionados (checkbox)... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Sandro2011 Postado Outubro 8, 2014 Denunciar Share Postado Outubro 8, 2014 (editado) Então, a tabela 'cliente' possui TODOS os clientes. E a tabela 'produto' possui TODOS os produtos cadastrados. Por favor, mande a estrutura de suas tabelas 'cliente' e 'produto'. Editando: agora que eu vi a função com consulta na tabela 'venda' logo acima. Venda é que possui os itens dos clientes, acredito eu Editado Outubro 8, 2014 por Sandro2011 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Sandro2011 Postado Outubro 8, 2014 Denunciar Share Postado Outubro 8, 2014 Este trecho do seu código: <p>Cliente</p> <p><select name="cliente_id"> <option value=""></option> <?php $sql = " select * from cliente"; $query = mysql_query($sql); while($linha = mysql_fetch_array($query)):?> <option value="<?php echo $linha['id']?>"<?php if(isset($cliente_id) && $cliente_id == $linha['id']) echo 'selected'?>><?php echo $linha['nome'];?></option> <?php endwhile; ?> </select> </p> É estranho. Você definiu uma 'busca' de cliente na 1a parte, e você está dizendo que o cliente está sendo encontrado. Acredito então que o seu cliente está sendo mostrado dentro do <select> da 'busca', porque você está fazendo uma comparação do $_POST['busca'] com a tabela de 'cliente'. Se isso for verdade, então esse código acima é redundante... Se você estiver querendo mostrar os dados do cliente selecionado, você deveria fazer um select do tipo: select * from cliente where id=$codigo_do_cliente onde o $codigo_do_cliente viria através de um $_POST , que no seu caso seria o $_POST['busca'] Bom, não vou me estender muito, preciso de um feedback seu, ficarei no aguardo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mpaquinho Postado Outubro 8, 2014 Autor Denunciar Share Postado Outubro 8, 2014 Sandro, boa tarde, poderia me enviar seu contato de email.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Sandro2011 Postado Outubro 9, 2014 Denunciar Share Postado Outubro 9, 2014 Por favor entenda, só ajudo através deste canal. Não tem como ajudar por email. Meu tempo também é escasso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mpaquinho Postado Outubro 9, 2014 Autor Denunciar Share Postado Outubro 9, 2014 Tudo bem Sandro2011 compreendo! Referente a este comentario: Se você estiver querendo mostrar os dados do cliente selecionado, você deveria fazer um select do tipo: select * from cliente where id=$codigo_do_cliente onde o $codigo_do_cliente viria através de um $_POST , que no seu caso seria o $_POST['busca'] Mas o que acontece Sandro2011, e quando eu quiser alterar este cliente , pois está tela não é somente para busca , mas também , para cadastrar novos cliente com seus respectivos produtos, e isto já está fazendo . Caso não percebeu este scripts dentro do option abaixo: <option value="<?php echo $linha['id']?>"<?php if(isset($cliente_id) && $cliente_id == $linha['id]) echo 'selected'?>><?php echo $linha['nome'];?></optio A variavel ' $cliente_id ' está recebendo de uma consulta , na qual eu fiz na condicional abaixo : elseif($_POST['opcao'] == "buscar"){ $cliente_id = $_POST['cliente_id']; // informacao do campo busca if(isset($_POST['produto_id'])) $produto_id = $_POST['produto_id']; // insformacao do campo produto if(empty($_POST['busca'])){ // se campo busca for vazio echo "<div class='bloco'>"; echo "<h5>Campo busca vazio!</h5>"; echo "</div>"; } // caso contrario else{ $busca = $_POST['busca']; // consulta tabela venda $sql = " SELECT * FROM venda "; $sql.= " INNER JOIN produto ON (venda.produto_id = produto.id) " ; $sql.= " INNER JOIN cliente ON (venda.cliente_id = cliente.id) " ; $sql.= " WHERE venda.cliente_id = '$busca' "; $query = mysql_query($sql); $num_linhas = mysql_num_rows($query); if($num_linhas > 0){ // se o resultado da consulta for maior que 0 , executa while($linhas = mysql_fetch_array($query)){ $cliente_id = $linhas['cliente_id']; // aqui está a variavel que estou pegando e levando para o campo <select name=cliente><option ... $produto[] = $linhas['produto_id']; } } else{ // se o resultado da consulta for igual 0 , executa echo "<div class='bloco'>"; echo "<h5>Cliente não encontrado</h5>"; echo "</div>"; } Se eu fizer isso aqui select * from cliente where id=$codigo_do_cliente Eu sei que não está errado , mas quando eu quiser cadastrar um novo? Então Sandro , o que eu estou querendo é trabalhar tudo no mesma tela , crud (cadastrar ,consultar e alterar ... ) obrigado por está dando atenção ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
mpaquinho
Gostaria de capturar os dados da tabela produto no input checkbox para posterior altera-las.
Estou Fazendo assim ,
Classe:
venda.php
e a tela assim :
Por favor, ajuda-me!
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.