Ir para conteúdo
Fórum Script Brasil

fabio_siqueira

Membros
  • Total de itens

    21
  • Registro em

  • Última visita

Tudo que fabio_siqueira postou

  1. Hello everyone !! Estou estudando PDO e fiquei com uma dúvida, se alguém puder me ajudar...agradeço!! Vou tentar explicar :-) Usando o conceito de orientação a objeto que "reaproveita" o código já criado, eu quero fazer uma query usando bindparam() e pegando os values de uma array, cujo vou criar esse array a partir de um fgetcsv(). Até ae está + ou - td bem; Eu queria saber se é possível que os valores desse array fossem alterados de acordo com o csv que eu selecionar e fazer apenas 1 query. EX csv vendedor: $filename = ($_FILES['vendedor']["tmp_name"]); $abraArq = fopen($filename,"r"); $trunc = "truncate table senha"; $executar = $pdo->exec($trunc); while(($row = fgetcsv($abraArq,2048,";"))!==FALSE) { $sql = "insert into vendedor (CODIGO_VENDEDOR,NOME_VENDEDOR,STATUS_VENDEDOR,SENHA_URA,DATA_EXPIRACAO) values('$row[0]','$row[2]','$row[3]','$row[7]','$row[8]')"; $executar = $pdo->exec($sql); } EX csv cliente: $filename = ($_FILES['cliente']["tmp_name"]); $abraArq = fopen($filename,"r"); $trunc = "truncate table senha"; $executar = $pdo->exec($trunc); while(($row = fgetcsv($abraArq,2048,";"))!==FALSE) { $sql = "insert into cliente (CODIGO_cliente,NOME_cliente,STATUS_cliente,SENHA_URA,DATA_EXPIRACAO) values('$row[1]','$row[5]','$row[6]','$row[7]','$row[11]')"; $executar = $pdo->exec($sql); }
  2. Funcionou!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Muito obrigado! tem como já deixar "padrão" para transformar tudo ou realmente tenho que fazer essa conversão?
  3. Fiz isso...e agora ele apresenta o erro: Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xE9dito' for column 'Descricao' at row 1 in C:\wamp\www\consumo\pdo_teste_sozinho2.php:35 Stack trace: #0 C:\wamp\www\consumo\pdo_teste_sozinho2.php(35): PDOStatement->execute() #1 {main} thrown in C:\wamp\www\consumo\pdo_teste_sozinho2.php on line 35 Ele não está aceitando os caracteres especiais, mas a função do prepare não é exatamente essa de aceitar os acentos e etc?
  4. Galera bom dia! alguém consegue me ajudar? Estou tentando importar um arquivo csv para o banco mysql usando PDO. acontece que ele insere todos os valores como NULL na tabela. Segue meu código: <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "fabio"; $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $filename = ($_FILES['arquivocsv2']["tmp_name"]); $abraArq = fopen($filename,"r"); $import = $conn->prepare("INSERT INTO relatorio (DocumentoSD,Descricao,CodCliente,Cliente,Regiao,DataDocumento,Material,Condicoes,Plano)VALUES (:DocumentoSD, :Descricao, :CodCliente, :Cliente, :Regiao, :DataDocumento, :Material, :Condicoes, :Plano)"); $import->bindValue(':DocumentoSD', $DocumentoSD,PDO::PARAM_STR); $import->bindValue(':Descricao', $Descricao,PDO::PARAM_STR); $import->bindValue(':CodCliente', $CodCliente,PDO::PARAM_STR); $import->bindValue(':Cliente', $Cliente,PDO::PARAM_STR); $import->bindValue(':Regiao', $Regiao,PDO::PARAM_STR); $import->bindValue(':DataDocumento', $DataDocumento,PDO::PARAM_STR); $import->bindValue(':Material', $Material,PDO::PARAM_STR); $import->bindValue(':Condicoes', $Condicoes,PDO::PARAM_STR); $import->bindValue(':Plano', $Plano,PDO::PARAM_STR); while (($items = fgetcsv($abraArq, 2048, ';')) !== FALSE) { $DocumentoSD = $items[]; $Descricao = $items[4]; $CodCliente = $items[5]; $Cliente = $items[6]; $Regiao = $items[7]; $DataDocumento = $items[10]; $Material = $items[11]; $Condicoes = $items[17]; $Plano = $items[29]; // Execute prepared query $import->execute();} ?>
  5. obrigado, O erro estava na minha tabela do mysql...estava importando um campo em branco e na tabela estava como não nulo. e retirei isso: if ($_POST['OV']== 'Relatorio') por isso: if ($radio == 'Relatorio') e funcionou
  6. Pessoal boa noite! Estou tentando pegar o valor da combobox do meu formulário e montar uma query no mysql porém ele não reconhece o valor da combobox. Código formulário: <form action="conexao_mysqli.php" method ='post' enctype="multipart/form-data"><br> Arquivo a ser importado: <input type="file" name="arquivocsv2" /> <br><br> <select size="1" name="OV" id="OV"> <option value="Relatorio">Relatorio</option> <option value="Ordens por Status">Ordens por Status</option> </select> <input type="submit" value="Enviar"><br> código PHP: $radio = $_POST['OV']; if ($_POST['OV']== 'Relatorio'){$trunc = "truncate table relatorio"; mysqli_query($conexao,$trunc) or die(mysqli_errno($conexao));} if ($radio == 'Ordens por Status'){$trunc = "truncate table ordens_status"; mysqli_query($conexao,$trunc) or die(mysqli_errno($conexao));} //query para insert na tabela relatorio $filename = $_FILES['arquivocsv2']["tmp_name"]; $abraArq = fopen($filename, "r"); while(($row = fgetcsv($abraArq,2048,";"))!==FALSE) { //condicional de qual radio button esta selecionado if ($_POST['OV']== 'Relatorio'){$sql = "insert into relatorio (DocumentoSD,Descricao,CodCliente,Cliente,Regiao,DataDocumento,Material,Condicoes,Plano) values('$row[0]','$row[4]','$row[5]','".addslashes($row[6])."','$row[7]','$row[10]','$row[11]','$row[17]','$row[29]')";} else if ($radio == 'Ordens por Status'){$sql = "insert into ordens_status (DocumentoSD,Descricao,Cliente,Regiao,DataDocumento,condicoes,FrmPgto) //executa a inserção mysqli_query($conexao,$sql) or die(mysqli_errno($conexao)); } fclose($abraArq);
  7. Consegui resolver fazendo um foreach para cada registro do textarea, caso alguém precise algum dia segue o código abaixo. Não sei se é a melhor forma pois acredito que perde performance se comparar com apenas um "Select * from where Codigo_Vendedor in($text)". Já que ele vai fazer um select para cada registro do textarea e da forma que eu queria seria apenas um select. $teste = explode("\r\n",$_POST['comentario']); foreach($teste as $teste2){ $sql = "SELECT CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA, DATA_EXPIRACAO FROM senha WHERE CODIGO_VENDEDOR = ('$teste2')"; $results = mysqli_query($conexao,$sql); while($row = mysqli_fetch_assoc($results)) { ?> <table> <td style="padding:5px"> <?php echo $row["CODIGO_VENDEDOR"];?></td> <td style="padding:5px"> <?php echo $row["NOME_VENDEDOR"];?></td> <td style="padding:5px"> <?php echo $row["SENHA_URA"];?></td> </table> <?php }} ?>
  8. Alguém? resumindo o que eu queria: Transformar o conteúdo da textarea em um array por quebra linha Segue meu código até o momento: // conectando no banco $conexao = mysqli_connect($servidor,$usuario,$senha,$banco); if (mysqli_connect_errno($conexao)){ echo "Problemas para conectar no banco de dados"; die(); } //pega dados do text área $text = $_POST['comentario']; $quebra = explode("\n",$text); $array = array($quebra); $sql = "SELECT CODIGO_VENDEDOR,NOME_VENDEDOR from senha where CODIGO_VENDEDOR = '$text'"; $resultado = mysqli_query($conexao,$sql); while($exibe = mysqli_fetch_assoc($resultado)){ ?> <tr id="conteudos"> <td style="padding:5px"> <?php echo $exibe["CODIGO_VENDEDOR"];?></td> <td style="padding:5px"> <?php echo $exibe["NOME_VENDEDOR"];?></td> </tr> <?php }
  9. Boa tarde! Tenho um banco no MySql que tem os seguintes campos : Codigo | Senha | Expiracao Eu quero fazer um formulário que tenha um textarea e pegar os códigos que vão ser inseridos nele e em base deles fazer uma consulta no MySql trazendo as senhas e a expiração. O problema é que esses códigos vão ser inseridos no textarea em uma única coluna porém os códigos vão estar um de baixo do outro. Como faço para pegar cada código de um textarea? Ex. de como vão ser "colados" no textarea: ix45 iwff i8n7 907u
  10. será que não vai dar gargalo no meu processador? meu processador é Intel CPU G645 dual core 2.9Mhz
  11. beleza...obrigado!! você sabe qual o minimo de potencia da fonte que é necessário pra essa placa?
  12. Bom dia! queria comprar uma placa de video melhor do que a que eu tenho que já é avó (geforce8600) só pro meu filho poder rodar alguns jogos que já não estou conseguindo atualmente, como por exemplo o novo lego vingadores 2 e quem sabe até o battlefield 4 :-) pretendo deixar o pc com 6 ou 8Gb de ram (atualmente está com 4) minha placa mãe é a Asus p8h61-m lx3 o problema acho que é o processador que é um intel dual core de 3.0 e não queria trocar ele agora... será que rola alguma dessas vgas?: RADEON R7 240 xfx - 2GB GEFORCE GTX 650 point of view gt9800 256 bits 1gb gigabyte gt 730 2gb Desde já, obrigado!
  13. Obrigado Beraldo! funcionou, usei o addlashes Segue o código como ficou caso alguém precise algum dia: //condicional de qual radio button esta selecionado if ($radio == 'Relatorio'){$sql = "insert into relatorio (DocumentoSD,Descricao,CodCliente,Cliente,Regiao,DataDocumento,Material,Condicoes,Plano) values('$row[0]','$row[4]','$row[5]','".addslashes($row[6])."','$row[7]','$row[10]','$row[11]','$row[17]','$row[29]')";} vou estudar de como usar o Prepared Statements. Eu sei que o mysql faz isso, mas é que na ferramentinha que eu estou criando, vai ser para algumas pessoas aqui do meu trabalho fazer esse insert e dps na própria ferramenta vai ter opções de consulta com alguns left joins etc..além de guardar no histórico esses arquivos :-) Mais uma vez Muito Obrigado!
  14. Galera boa tarde! Estou desenvolvendo um sistema simples aqui no meu trabalho, porém estou com um problema quando vou importar um arquivo csv para o mysql. Quando o PHP "acha" um apóstrofo no meio do nome, ele para de subir os dados no mysql. Acredito que seja por causa do "sql injection" mas não sei como fazer ele aceitar esses caracteres especiais. Estou usando a conexão Mysqli mas de forma estrutural. Segue o trecho do código: // conectando no banco $conexao = mysqli_connect($servidor,$usuario,$senha,$banco); if (mysqli_connect_errno($conexao)){ echo "Problemas para conectar no banco de dados"; die(); } //query para insert na tabela relatorio $filename = $_GET['arquivocsv2']; $abraArq = fopen($filename, "r"); while(($row = fgetcsv($abraArq,2048,";"))!==FALSE) { //condicional de qual radio button esta selecionado if ($radio == 'Relatorio'){$sql = "insert into relatorio (DocumentoSD,Descricao,CodCliente,Cliente,Regiao,DataDocumento,Material,Condicoes,Plano) values('$row[0]','$row[4]','$row[5]','$row[6]','$row[7]','$row[10]','$row[11]','$row[17]','$row[29]')";} é exatamente o array: $row[6] onde possui registros com apóstrofo. Obrigado!
  15. Funcionou certinho!! E se ao invés de excluir a primeira linha, eu criar uma tabela onde a primeira linha são os nomes dos campos da tabela no mysql?
  16. Boa tarde! Consigo importar um arquivo csv para o mysql usando o PHP, porém que quero importar sem a primeira linha. É possível? Segue meu código até o momento: $tabela = "importar"; //tabela do banco $arquivo = $regional;// aquivo a ver importado txt ou //$arquivo = 'teste.csv';// arquivo a ver importado csv do excel $arq = fopen($arquivo,'r');// le o arquivo txt while(!feof($arq)) for($i=2; $i<3; $i++){ if ($conteudo = fgets($arq)){//se extrair uma linha e não for false $ii++; // $ll recebe mais 1 ==== em quanto o existir linha sera somada aqui $linha = explode(';', $conteudo);// divide por coluna onde tiver ponto e virgula } $sql = "INSERT INTO $tabela (DocumentoSD,Status,Ocorr,Tipodocvendas,Descricao,CodClient) VALUES ('$linha[0]', '$linha[1]','$linha[2]','$linha[3]','$linha[4]','$linha[5]')"; $result = mysql_query($sql) or die(mysql_error()); $linha = array();// limpa o array de $linha e volta para o for } echo "quantidade de linhas importadas = ".$ii;
×
×
  • Criar Novo...