Ir para conteúdo
Fórum Script Brasil

carlosantoliv

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Tudo que carlosantoliv postou

  1. Olá, galera. Estou probleminha que está chato para resolver. Consulta vinda do INNER JOIN trás resultados duplicados. Tenho duas tabelas que são independentes. uma das tabelas recebe os dados de uma planilha... melhor dizendo, os dados(que é uma planilha excel) são importados para a tb_fanf do mysql. também tenho uma tabela que recebe o conteúdo de arquivos xml -> tb_xml tanto a tb_xml quanto a tb_fanf possuem o mesmo campo: numeroFicha. Essas tabelas possuem "por sí" próprias esses campos e são alimentadas independentemente. Como essas tabelas possuem as o mesmo campo: numeroFicha, então o que pensei.. vou realizar uma consulta que traga tal número de ficha do xml e se exibir na tb_fanf, também trará os dados desta tabela. OBS: cada FICHA tem um EXAME. Esta ficha - 5000000008 - existe 8 vezes na tb_xml e 8 vezes na tb_fanf Utilizei o seguinte código: SELECT DISTINCT x.numeroGuiaPrestador, x.codigoProcedimento, f.valor_exame_fanf FROM tb_xml x INNER JOIN tb_fanf f ON x.numeroGuiaPrestador=f.numeroFicha_fanf WHERE f.numeroFicha_fanf='5000000008' deveria me retornar da seguinte maneira: 5000000008 5000000008 5000000008 5000000008 5000000008 5000000008 5000000008 5000000008 o que acontece é me retornar 64 vezes o mesmo registro. ou seja, parece que pega 8 da tb_xml VEZES 8 da tb_faf e resulta 64. O dados aparecem mais do que duplicados. Já usei o DISTINCT. Mas ele serve só quando não utilizo o valor_exame. Quando coloco este, os dados se repetem. Alguém compreende o que acontece?
  2. Senhores, consigo realizar o upload do conteúdo de um arquivo XML para o banco de dados MySQL. Mas apenas um arquivo por vez. O que eu queria é que fossem vários arquivos. Já tentei criar array, variáveis... mas ainda não consegui. Consegui criar os scripts abaixo: <!DOCTYPE html><!--To change this license header, choose License Headers in Project Properties.To change this template file, choose Tools | Templatesand open the template in the editor. --><html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form action="xml_importar.php" method="POST" enctype="multipart/form-data"> <input type="file" name="upl" multiple style="font-size:80px" /> <input type="submit" name="enviar_xml" value="Enviar" /> </form> </body></html> xml_importar.php <?php set_time_limit(3600); //1 hora pra dar timeout /* Conectar com o banco de dados da aplicação */mysql_connect('localhost', 'root', 'senha') or die('Erro ao conectar');mysql_select_db("nome_banco"); //**************************************************************************** ini_set('default_charset', 'UTF-8'); /**A linha abaixo mostra o nome do aquivo que foi selecionado**/ echo "<h1>" . "Arquivo XML: ". $_FILES['upl']['name'] ." Selecionado com Sucesso!." . "</h1>"; echo "<h2>Exibindo Fichas:</h2>"; if (isset($_POST['enviar_xml'])) { if (is_uploaded_file($_FILES['upl']['tmp_name'])) { $xml = simplexml_load_file($_FILES['upl']['tmp_name']); /* Lê o arquivo XML e recebe um objeto com as informações */ }} $x = 0; //contador foreach ($xml->tag1->tag2->tag3->{'nome-nome2'} as $valor){ /* Percorre o objeto e salva as informações no banco de dados */ mysql_query("INSERT INTO nome_tabela(tag1, tag2, tag3, tag4, tag5) VALUES (".$valor->tag5->tag6.", '".$valor->tag7->tag8."', ".$valor->tag9->tag10->tag11->tag12.", '".$valor->tag9->tag10->tag11->tag13."',".$valor->tag9->tag10->tag11->tag14.")"); if(mysql_affected_rows() != -1){ $x++;} } echo "$x contatos importados com sucesso!";?> //**************************************************************************************************************************************** O que preciso é selecionar vários XMLs e salvar no banco. Hoje, consigo, sim, selecionar vários, mas somente 1(um) XML é gravado no banco. Senhores, se puderem, dá uma ajudinha ae... abç!
  3. Senhores, não estou conseguindo Inserir vários checkbox que vem de outras tabelas para tabela correspondente. Faz um tempo que estou tentando solucionar esse problema. Consigo inserir apenas em uma coluna. Mas, por exemplo, tenho umas tabelas chamadas PRODUTO, USUÁRIO e CATEGORIA; estou tentando gravar o ID de cada uma em outra tabela para que elas possam se relacionar. Não importa quantos checks eu venha marcar, sempre está pegando o id do produto corretamente, mas não os outros campos. Os outros campos são gravados na tabela sempre a partir da primeira linha, por exemplo, ou é gravado em outra tabela o último produto ou o primeiro. Também queria inserir preço para cada produto, sendo que acontece a mesma coisa. OBS: A quantidade de checkbox aparece de acordo com a quantidade de produtos. Vou postar o código aqui: add_carrinho.php <?php require_once('Connections/obraGenio2.php'); $maxRows_rsProd = 20; $pageNum_rsProd = 0; if (isset($_GET['pageNum_rsProd'])) { $pageNum_rsProd = $_GET['pageNum_rsProd']; } $startRow_rsProd = $pageNum_rsProd * $maxRows_rsProd; mysql_select_db($database_obraGenio2, $obraGenio2); $query_rsProd = "SELECT DISTINCT p.id_produtos, p.fk_cate3, c3.nome_cate3, p.desc_produto, p.preco_produto, p.fk_usuario_sessao, e.uf FROM tb_produtos p INNER JOIN tb_categoria3 c3 ON p.fk_cate3 = c3.id_cate3 INNER JOIN tb_endereco e INNER JOIN tb_clientes cli on e.id_endereco = cli.fk_endereco ORDER BY p.preco_produto"; $query_limit_rsProd = sprintf("%s LIMIT %d, %d", $query_rsProd, $startRow_rsProd, $maxRows_rsProd); $rsProd = mysql_query($query_limit_rsProd, $obraGenio2) or die(mysql_error()); $row_rsProd = mysql_fetch_assoc($rsProd); if (isset($_GET['totalRows_rsProd'])) { $totalRows_rsProd = $_GET['totalRows_rsProd']; } else { $all_rsProd = mysql_query($query_rsProd); $totalRows_rsProd = mysql_num_rows($all_rsProd); } $totalPages_rsProd = ceil($totalRows_rsProd/$maxRows_rsProd)-1; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento sem título</title> </head> <body> <form id="form1" name="form1" method="post" action="config/function.php?funcao=gravarProdutosAddCarrinho3"> <table border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="7">&nbsp;</td> <td width="156">fk_cate3</td> <td width="148">nome_cate3</td> <td width="144">desc_produto</td> <td width="151">preco_produto</td> <td width="171">preço</td> <td width="171">fk_usuario_sessao</td> <td width="71">uf</td> <td width="124">&nbsp;</td> </tr> <?php do { ?> <tr> <td><?php echo $row_rsProd['id_produtos']; ?> <input name="id_produto[]" type=hidden" id="id_produto[]" value="<?php echo $row_rsProd['id_produtos]; ?>" /> <td><?php echo $row_rsProd['fk_cate3']; ?> <input name="nome_produto[]" type=hidden" id="nome_produto[]" value="<?php echo $row_rsProd['fk_cate3]; ?>" /></td> <td><?php echo $row_rsProd['nome_cate3']; ?></td> <td><?php echo $row_rsProd['desc_produto']; ?></td> <td><?php echo $row_rsProd['preco_produto']; ?></td> <td><label for="txt_preco"></label> <input type="text" name="txt_preco" id="txt_preco" /></td> <td><?php echo $row_rsProd['fk_usuario_sessao']; ?></td> <td><?php echo $row_rsProd['uf']; ?></td> <td><input type="checkbox" name="produto[]" id=produto[]" value="<?php echo $row_rsProd['id_produtos]; ?>"/> <label for="produto[]"></label></td> </tr> <?php } while ($row_rsProd = mysql_fetch_assoc($rsProd)); ?> <tr> <td></td> <td height="2"></td></ </table> <p> <input type="submit" name="btnenviar" id="button" value="Enviar" /> </p> </form> <p>&nbsp;</p> </body> </html> <?php mysql_free_result($rsProd); ?> </body> </html> ABAIXO É ONDE RECEBO OS DADOS: function.php //******************CADASTRAR CARRINHO TESTE **************************** $grava_desc_produto = $_POST["desc_produto"]; if (isset($_GET['funcao'])){ // AÇÃO - ADICIONA PRODUTOS if ($_GET['funcao'] == "gravarProdutosAddCarrinho3"){ $sql3 = "SELECT DISTINCT p.id_produtos, p.fk_cate3, c3.nome_cate3, p.desc_produto, p.preco_produto, p.fk_usuario_sessao, e.uf FROM tb_produtos p INNER JOIN tb_categoria3 c3 ON p.fk_cate3 = c3.id_cate3 INNER JOIN tb_endereco e INNER JOIN tb_clientes cli on e.id_endereco = cli.fk_endereco ORDER BY p.preco_produto"; $res = mysql_query($sql3); $dados = mysql_fetch_array($res); if ($_POST && isset($_POST['produto'])){ if ($_POST['btnenviar']){ $ativo = $_POST['produto']; foreach($ativo as $value){ $cat3 = $dados['fk_cate3']; $preço = $_POST["txt_preco"]; echo $value; $insert = mysql_query("INSERT INTO tb_car_teste(nome_produto, desc_produto, fk_produtos)VALUES('$cat3', '$preço', '$value')"); echo "Produto Cadastrado com Sucesso. Redirecionando..."; echo "<meta HTTP-EQUIV='Refresh' CONTENT='1;URL=../add_carrinho.php'>"; echo $_valor . '<br/>'; } } }}} Preciso gravar em outra tabela o ID do produto, da categoria, do usuário(que não está neste exemplo), o preço que cada usuário poderá "setar". Não sei onde estou errando no código. Algum amigo de profissão poderia me ajudar?
×
×
  • Criar Novo...