Ir para conteúdo
Fórum Script Brasil

Carlos Rocha

Membros
  • Total de itens

    1.300
  • Registro em

  • Última visita

Tudo que Carlos Rocha postou

  1. Pessoal. Estou usando o while e dentro dele estou criando inputs no form dinamicamente: .. $i=0; while .. echo " <tr><td align=left colspan=11><font color=\"red\">Observação do cliente para o fornecedor:</font>&nbsp;&nbsp;&nbsp;&nbsp; <input type=\"text\" name=\"{$i}[observa_cli]\" id=\"{$i}[observa_cli]\" value=\"\" style=\"border-color:black\"> </td></tr>"; Isso aqui me rende algo do tipo 0[observa_cli], 1[observa_cli], .......,n[observa_cli]. Isso a cada volta do while. Então, acontece que eu preciso criar campos type=hidden n vezes com o mesmo name e id desse campo text, tantas vezes quantas forem o numero de produtos do fornecedor atrelado a esta observação. Isso já esta sendo feito com um laço For e funcionando. for ($ob=$i;$ob<(mysql_num_rows($sql_produtos_query)+ $i);$ob++) { echo "<input type=\"hidden\" name=\"{$ob}[observa_cli]\" id=\"{$ob}[observa_cli]\" value=\"Teste\">"; } Porem, quando vou fazer o For dentro while, como a variavel $i já foi declarada, eu já crio o campo <input type=\"text\" name=\"{$i}[observa_cli]\" id=\"{$i}[observa_cli]\" value=\"\" style=\"border-color:black\"> Com o primeiro índice do loop. Porem, dento do while, o campo com índice 1 já foi criado e não posso ter dois campos com o mesmo índice. Eu preciso arranjar uma forma de fazer com o que o laço For percorra o formulário e pesquise se o campo <input type=\"text\" name=\"{$i}[observa_cli]\" id=\"{$i}[observa_cli]\" value=\"\" style=\"border-color:black\"> Já foi criado. Se sim, passa para o próximo índice. Seria algo tipo: if(exist(<input type=\"text\" name=\"{$i}[observa_cli]\" id=\"{$i}[observa_cli]\" value=\"\" style=\"border-color:black\">) { Não crie este o input como este indice índice. } Como faço isso?
  2. Bom pessoal. Estou fazendo progresso. Agora preciso saber se uma parte do código existe. Seguinte. Estou criando uns campos do formulario dinamicamente. Tipo; <input type=\"hidden\" name=\"{$i}[radio_pgto]\" id=\"{$i}[radio_pgto]\" value=\"1\"> Chega uma hora que eu preciso saber se esse campoo já foi criado para não criar de novo. Tipo: if( exist(<input type=\"hidden\" name=\"{$i}[radio_pgto]\" id=\"{$i}[radio_pgto]\" value=\"1\">) ) { Não cria esse campo como o indice 1. } Tem jeito?
  3. Pessoal. Sei que estou sendo enjoado demais em pedir tantas ajudas em tão pouco tempo. Mas, imagino que vocês já passaram por isso um dia. Então, venho mais uma vez pedir um help: Vejam a imagem abaixo: Bom, esse é a minha lista de produtos(Exemplo para testes): Aqui, eu tenho um while para ver os codigos dos fornecedores e outro while(dentro do primeiro while) para listar os produtos de cada fornecedor. Acontece, que, no while que lista os fornecedores, eu preciso pergunatr ao cliente se ele quer pagar vista ou a prazo bem como colocar alguma observação para cada fornecedor. Abaixo, vem os produtos de cada fornecedor conforme o loop while. Minha duvida é a seguinte: os produtos escolhidos estão indo normalmente para o carrinho de compras que é a proxima tela Essa tela do carinho eu ainda terei que configurala para ficar igual á da tela de exibiçao dos produtos. Mas, caso eu volte na tela anterior para escolher outro produto, a escolha que fiz para as condiçoes de pagamento e as observaçoes de cada fornecedor serão perdidas e, se reenviadas, não terão o opção original do cliente. Como faço para resolver esse problema? Outra coisa: como fazer para enviar separadamente dos produtos esses 3 campos: id fornecedor, observação, opçao de pagamento? Segue meu codigo: <? if ($acao== "mostra_produtos"){ $sql_fornece = " SELECT distinct(f.id), concat(f.nome, f.razaosocial), pl.id_lista from produtos_lista pl inner join produtos p on pl.id_produto = p.id inner join fornecedores f on f.id = p.fornecedor inner join grupos g on p.grupo = g.id_grupo where pl.id_lista = $id_lista order by concat(f.nome, f.razaosocial) "; $sql_fornece_query=mysql_query($sql_fornece); if(mysql_num_rows($sql_fornece_query)==0) { echo "<table border=1 width=800 align=center> <tr><td colspan=11 align=center><h3>Ainda não há produtos cadastrados</h3></td></tr> </table>"; } else { echo "<table border=1 width=800 align=center> <tr><td colspan=11 align=center><h4>Para comprar o produto, informe a quantidade de ítens na coluna Quantidade<br>e clicke no botão \"Enviar todos os ítens\" no final da lista.<br>Para NÃO comprar o produto, deixar a coluna Quantidade com o valor 0 (zero). <br> Caso quera adicionar alguma observação do produto, preencha o campo Observaçao Cliente.<tr> <td align=center>Lista</td> <td align=center>Condição</td> <td align=center>Produto</td> <td align=center>Qtde.<br>na caixa</td> <td align=center>Preço por<br>unidade<br>na caixa</td> <td align=center>Preço Caixa</td> <td align=center>Quantidade</td> <td align=center>Sub Total</td> <td align=center>Observação<br>Empresa</td> <td align=center>Adicionar</td> </tr> "; $i = 0; while(list($id_fornece,$nome_fornece,$lista_fornece) = mysql_fetch_row($sql_fornece_query)) { echo "<tr><td align=left colspan=4>Fornecedor: &nbsp;&nbsp;" . $nome_fornece. "</td> <td align=left colspan=7>Condição de pagamento: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type=\"radio\" name=\"radio_pgto\" value=\"1\" checked=\"checked\"> À vista <input type=\"radio\" name=\"radio_pgto\" value=\"2\"> À prazo </td></tr> <tr><td align=left colspan=11>Observação do cliente para o fornecedor: &nbsp;&nbsp;&nbsp;&nbsp; <input type=\"text\" id=\"{$i}[observa_cli]\" value=\"\"></td></tr> "; $sql_produtos = " SELECT pl.id_lista, p.foto, pl.id_produto, p.nome, f.id, concat(f.nome, f.razaosocial), g.nome, p.quantidadecaixa, pl.preco_produto, pl.condicao, pl.observacao from produtos_lista pl inner join produtos p on pl.id_produto = p.id inner join fornecedores f on f.id = p.fornecedor inner join grupos g on p.grupo = g.id_grupo where pl.id_lista = $lista_fornece and f.id=$id_fornece order by concat(f.nome, f.razaosocial), p.nome "; $sql_produtos_query=mysql_query($sql_produtos); echo "<form action=\"carrinho.php?op=adicionar\" method=\"post\" name=\"envia_tudo\">"; while(list($id_lista, $foto, $id_produto, $nome_produto, $id_fornece, $nome_razao_fornece, $nome_grupo, $quantidadecaixa, $preço, $condicao,$observacao) = mysql_fetch_row($sql_produtos_query)){ echo "<input type=\"hidden\" name=\"{$i}[id_prod]\" id=\"{$i}[id_prod]\" value=\"$id_produto\"> <input type=\"hidden\" name=\"{$i}[quan]\" id=\"{$i}[quan]\" value=\"\"> <input type=\"hidden\" name=\"{$i}[id_lista]\" name=\"{$i}[id_lista]\" value=\"$id_lista\"> "; include("../global/funcoes_php/foto_ver.php"); $icone = "<img border=0 src='../img/saiba_mais.png' alt='Saiba Mais'>"; if ($observacao=="") {$observacao="Sem observação";} if ($condicao==1) {$condicao="Complemento";} if ($condicao==2) {$condicao="Encarte";} echo "<tr> <td align=center>$id_lista</td> <td align=letf>$condicao</td> <td align=let>$nome_produto</td> <td align=center>$quantidadecaixa</td> <td align=right>R$ ". number_format($preço/$quantidadecaixa, 2, '.', '')."</td> <td align=right>R$ ". number_format($preço, 2, '.', '')."</td> <td align=right> <input type=text id={$i}[quant] value=0 size=2 style=\"text-align: center;\" onKeyPress=\"BloqueiaLetras();\" onchange=\"calculo(this.value, $preço,'{$i}[quant]','{$i}[quan]','{$i}[label_preco]');\" > </td> <td align=right>R$ <label id=\"{$i}[label_preco]\">0.00</label></td> <td align=left>$observacao</td> <td align=center valign=\"middle\"> <a href=\"#\" onclick=\"this.href=' carrinho.php?op=adicionar&id_produto=$id_produto&id_da_lista=$id_lista&quantidade='+document.getElementById('{$i}[quant]').value\" > Enviar<br>Ítem</a> </td> </tr>"; $i++; } } echo " <tr> <td align=center valign=\"middle\" colspan=11 height=50> <input type=\"submit\" value=\"Enviar todos os ítens\"> </form> </td> </tr> <tr> <td align=center valign=\"middle\" colspan=11 height=50> <a href=\"java script:history.go(-1);\">Voltar</a> </form> </td> </tr> "; echo "</table>"; }} ?>
  4. Carlos Rocha

    loop na query

    Consegui. Ficou assim: /* QuerySQL_ObtemListaDeItens Este metodo gera uma parte do codigo SQL que sera usado para buscar os dados do carrinho de compra (id, NOME e PREÇO). O comando SQL final tera como finalidade de buscar no banco de dados apenas os dados dos itens incluidos no carrinho. */ function QuerySQL_ObtemListaDeItens(){ $itens = "where ("; $STR = ""; if ($this->QuantosItens()>0) { $fixo = "(pl.id_produto ="; for ($i=0;$i<$this->QuantosItens();$i++) { $STR = $STR . $fixo . " " . $this->item_codigo[$i]." and pl.id_lista=". $this->item_lista[$i].")"; if ($i+1<$this->QuantosItens()) { $STR = $STR . " or "; } } } if (!$STR == "") { return $itens . $STR; }else{ //Caso não exista nenhum item no carrinho o codigo final SQL, procurara por um item que não existe na tabela de produtos, neste caso -1. return "where id = -1"; } } /* QuerySQL_ObtemListaDeItens() */
  5. Carlos Rocha

    loop na query

    Ola pessoal. Bom fim de semana a todos. Tenho uma função que complementa uma query. Acontece que essa função pega do where para frente. Nela é feito um loop pelos id's dos produtos da tabela de produtos_lista. Porem agora surgiu uma necessidade de comparar o id e o numero da lista de produtos para saber se o determinado id esta na determinada lista. function QuerySQL_ObtemListaDeItens(){ $itens = "where ("; $STR = ""; if ($this->QuantosItens()>0) { $fixo = "pl.id_produto ="; for ($i=0;$i<$this->QuantosItens();$i++) { $STR = $STR . $fixo . " " . $this->item_codigo[$i]; if ($i+1<$this->QuantosItens()) { $STR = $STR . " or "; } } } if (!$STR == "") { return $itens . $STR; }else{ //Caso não exista nenhum item no carrinho o codigo final SQL, procurara por um item que não existe na tabela de produtos, neste caso -1. return "where id = -1"; } } /* QuerySQL_ObtemListaDeItens() */ Essa função esta funcionando. Eu gostaria de fazer esse where mais ou menos assim: where ((pl.id_produto = 3 and pl.id_lista = 1) or (pl.id_produto = 6 and pl.id_lista = 1)) Grato a quem puder ajudar. Essa é query: $QuerySQL = " select p.id, p.foto, p.nome, pl.preco_produto, p.quantidadecaixa, p.grupo, g.nome, p.fornecedor from produtos_lista pl inner join produtos p on p.id = pl.id_produto inner join grupos g on p.grupo = g.id_grupo " . $MeuCarrinho->QuerySQL_ObtemListaDeItens(). ") and pl.data_fim>= CURRENT_DATE";
  6. Carlos Rocha

    limpar array

    Bom. Fiz assim: $dados=null; Funcionou, limpou a array. Porem, surgiu outro problema: Quando, após declarar a array dados como sendo o filtro do post, dou um print_r no $dados e imprime direitinho. Porem, quando vejo dentro do for, o $dados [$i] ['id_prod'] não imprime. O que será que esta de errado? $dados = filtrar_array_por_valor($_POST, 'marcado', 'on'); print_r($dados); // trocar o for para for each -> para cada indice da array, faça a inserção. for( $i = 0; $i <= count( $dados ); $i++ ) { print $dados[ $i ] [ 'id_prod' ]; if ($dados[ $i ] [ 'condicao' ]=="#" ) { echo '<script> alert("Posição não foi seleciona. \n Por favor, volte selecione!"); document.location="produto_lista_cadastrar.php?acao=mostra_produtos&id_fornece='.$id_fornece.'"; </script>'; break; } if( !empty( $dados[ $i ] [ 'id_prod' ] ) ) { $Query = sprintf( 'SELECT id FROM produtos WHERE id = %d', $dados[ $i ] [ 'id_prod' ] ); $R_Query = $MySQL->query( $Query ); if( mysql_num_rows( $R_Query ) > 0 ) { $preco_calculado = (($dados[ $i ] [ 'novo_imposto' ] * $dados[ $i ] [ 'novo_preco' ]) / 100 ) + $dados[ $i ] [ 'novo_preco' ]; $MeuCarrinho->AdicionarItem( $dados[ $i ] [ 'id_prod' ], 1 , $dados[ $i ] [ 'novo_imposto' ], $preco_calculado, $dados[ $i ] [ 'condicao' ] ); } } } $dados = null; O print_r($dados) imprime (no exemplo usado): Array ( [2] => Array ( [id_prod] => 6 [novo_preco] => 3.20 [novo_imposto] => 0 [marcado] => on [condicao] => 1 ) ) Mas o print $dados[ $i ] [ 'id_prod' ] dentro do for não imprime nada e ainda nõ chegou no $dados=null.
  7. Carlos Rocha

    limpar array

    Ola pessoal. Tenho o código abaixo de um carrinho de compras. Quando o cliente marca varios produtos e envia todos, eu crio uma matriz de filtro para saber o valor do campo name="marcado" que é uma checkbox de cada produto que o $_post do form enviou. Dai eu filtro o array $_post por valor de marcado=On e com os produtos enviados marcado=On, eu faço uma matriz $dados. Depois, eu jogo essa matriz para o carrinho propriamente dito. O meu problema é que, caso o cliente marque 3 produtos e depois ele decida voltar e marcar outro produto, o array dados não envia esse outro. O que eu devo fazer para resolver isso? Acho que devo ao final do lançamento no carrinho zerar o array $_post e depois enche-lo de novo. Seria isso? Se sim, como fazer isso? $dados = filtrar_array_por_valor($_POST, 'marcado', 'on'); // trocar o for para for each -> para cada indice da array, faça a inserção. for( $i = 0; $i <= count( $dados ); $i++ ) { if ($dados[ $i ] [ 'condicao' ]=="#" ) { echo '<script> alert("Posição não foi seleciona. \n Por favor, volte selecione!"); document.location="produto_lista_cadastrar.php?acao=mostra_produtos&id_fornece='.$id_fornece.'"; </script>'; break; } if( !empty( $dados[ $i ] [ 'id_prod' ] ) ) { $Query = sprintf( 'SELECT id FROM produtos WHERE id = %d', $dados[ $i ] [ 'id_prod' ] ); $R_Query = $MySQL->query( $Query ); if( mysql_num_rows( $R_Query ) > 0 ) { $preco_calculado = (($dados[ $i ] [ 'novo_imposto' ] * $dados[ $i ] [ 'novo_preco' ]) / 100 ) + $dados[ $i ] [ 'novo_preco' ]; $MeuCarrinho->AdicionarItem( $dados[ $i ] [ 'id_prod' ], 1 , $dados[ $i ] [ 'novo_imposto' ], $preco_calculado, $dados[ $i ] [ 'condicao' ] ); } } } /* delete($dados); $dados= array(); print_r($dados); */ }
  8. Carlos Rocha

    php -> pdf

    Olá pessoal. Tenho o código abaixo que transforma uma pagina html (gerada por php) em pdf. Esta funcinando direitinho. Estou usando o dompdf Porem, eu gostaria de colocar, no pdf, um cabeçalho e um rodapé mas não achei nada do dompdf sobre cabeçalho e rodapé na net. Gostaria que voces me ajudassem. Segue meu código: <?php ob_start(); session_start(); header('Content-Type: text/html; charset=utf-8'); include("../global/config/const.php"); include("../global/config/conexao.php"); include("../global/funcoes_php/formata_cep.php"); include("../global/funcoes_php/formata_tel.php"); include("../global/funcoes_php/formata_cpf.php"); include("../global/funcoes_php/formata_cnpj.php"); include("../global/funcoes_php/formata_data.php"); ?> <html> <head> <title><?=$titulo_admin;?></title> <link href="../global/config/stilo.css" rel="stylesheet" type="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <?php if ($acao == "gerapdf") { $consulta_fornecedor=" SELECT razaosocial, nome FROM fornecedores WHERE id=$id "; list($FORNECEDOR_RAZAOSOCIAL,$FORNECEDOR_NOME) = mysql_fetch_row($MySQL->query($consulta_fornecedor)); $texto= "<table width=\"95%\" border=\"1\" align=\"center\"> <tr><td colspan=\"4\" align=\"center\"> RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </td></tr> "; $texto.= "<tr><td colspan=\"4\" align=\"left\">DATA: ".formata_data($data_relatorio)."</td></tr>"; $consulta_cliente=" SELECT DISTINCT(pc.id_cliente),cl.razaosocial, cl.nome FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor INNER JOIN clientes cl ON cl.id = pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' ORDER BY cl.nome, cl.razaosocial "; $texto.= "<tr> <td align=\"center\" width=\"40%\">NOME DO PRODUTO</td> <td align=\"center\" width=\"20%\">QUANTIDADE</td> <td align=\"center\" width=\"20%\">preço UNITÁRIO</td> <td align=\"center\" width=\"20%\">SEMI TOTAL</td> </tr> "; $consulta_cliente_query = $MySQL->query($consulta_cliente); while(list($cliente,$CLIENTE_RAZAOSOCIAL,$CLIENTE_NOME) = mysql_fetch_row($consulta_cliente_query)) { $texto.= "<tr><td colspan=\"4\" align=\"left\">$CLIENTE_RAZAOSOCIAL$CLIENTE_NOME</td></tr>"; $consulta_itens=" SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' and pc.id_cliente=$cliente ORDER BY pe.ID_PRODUTO "; $SUB_TOTAL=0.00; $consulta_itens_query = $MySQL->query($consulta_itens); while(list( $PRODUTO_NOME, $QUANTIDADE, $PRECO_UNI, $SEMI_TOTAL ) = mysql_fetch_row($consulta_itens_query)) { $SUB_TOTAL+=$SEMI_TOTAL; $texto.= "<tr> <td align=\"left\" width=\"40%\">$PRODUTO_NOME</td> <td align=\"center\" width=\"20%\">$QUANTIDADE</td> <td align=\"right\" width=\"20%\">R$ ".number_format($PRECO_UNI, 2, '.', '')."</td> <td align=\"right\" width=\"20%\">R$ ".number_format($SEMI_TOTAL, 2, '.', '')."</td> </tr> "; } $texto.= "<tr><td align=\"center\" colspan=\"4\">Total do Cliente na data: R$ ".number_format($SUB_TOTAL, 2, '.', '')."</td></tr>"; $TOTAL_GERAL+=$SUB_TOTAL; } $TOTAL_FORNECE+=$TOTAL_GERAL; $texto.= "<tr><td align=\"center\" colspan=\"4\">Total do Fornecedor na data: R$ ".number_format($TOTAL_FORNECE, 2, '.', '')."</td></tr>"; $texto.= "</table>"; require_once("../global/funcoes_php/dompdf/dompdf_config.inc.php"); $dompdf = new DOMPDF(); $html = iconv("utf-8","iso-8859-1",$texto); $dompdf->load_html($html); $dompdf->set_paper('letter', 'landscape'); $dompdf->render(); $dompdf->stream("pdf/relatorio.pdf"); } ?> </body> </html>
  9. Olá pessoal. Boa tarde. Tenho o seguinte array: Array ( [0] => Array ( [id_prod] => 3 [quan] => 1 [id_lista] => 2 ) [2] => Array ( [id_prod] => 6 [quan] => 2 [id_lista] => 2 ) [4] => Array ( [id_prod] => 1 [quan] => 3 [id_lista] => 2 ) ) Tenho um codigo para saber quais os valores que estão em [id_prod]. Porem o valor do indice 4 não esta vindo. Onde será que esta o erro? for( $i = 0; $i < count( $dados ); $i++ ) { print "<br>".$dados[ $i ] [ 'id_prod' ]."oi"; if( !empty( $dados[ $i ] [ 'id_prod' ] ) ) { $Query = sprintf( 'SELECT id FROM produtos WHERE id = %d', $dados[ $i ] [ 'id_prod' ] ); $R_Query = $MySQL->query( $Query ); if( mysql_num_rows( $R_Query ) > 0 ) { $MeuCarrinho->AdicionarItem( $dados[ $i ] [ 'id_prod' ], $dados[ $i ] [ 'quan' ] , $dados[ $i ] [ 'id_lista' ] ); } } }
  10. Carlos Rocha

    PHP para PDF

    Consegui. foi só criar um arquivo seperado quew deu certo.
  11. Carlos Rocha

    PHP para PDF

    Bom. Mudei a biblioteca e fiz o script de duas maneiras: Uma com uma pagina sozinha. Dessa forma o pdf é gerado e lê normalmente. A outra forma é gerando o relatório normal no php e depois acrecentando um botão. Gerar pdf com um href setando para um ação=gerarpdf. Dessa forma, tambem gera o pdf, o probleam é que na hora que vou ler esse pdf, diz que não pode abrir pois o arquivo esta danificado. Segue o arquivo separado que esta funcionando correto: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>PHP - PDF</title> </head> <body> <?php header('Content-Type: text/html; charset=utf-8'); include("global/config/conexao.php"); include("global/funcoes_php/formata_cep.php"); include("global/funcoes_php/formata_tel.php"); include("global/funcoes_php/formata_cpf.php"); include("global/funcoes_php/formata_cnpj.php"); include("global/funcoes_php/formata_data.php"); $id=1; $data_relatorio="2011-07-06"; $cliente=1; $consulta_fornecedor=" SELECT razaosocial, nome FROM fornecedores WHERE id=$id "; $consulta_fornecedor_query = $MySQL->query($consulta_fornecedor); list($FORNECEDOR_RAZAOSOCIAL,$FORNECEDOR_NOME) = mysql_fetch_row($consulta_fornecedor_query); $texto1= "<table width=\"95%\" border=\"1\" align=\"center\"> <tr><td colspan=\"4\" align=\"center\"> RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </td></tr> "; $texto2= "<tr><td colspan=\"4\" align=\"left\">".formata_data($data_relatorio)."</td></tr>"; $consulta_cliente=" SELECT DISTINCT(pc.id_cliente),cl.razaosocial, cl.nome FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor INNER JOIN clientes cl ON cl.id = pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' ORDER BY cl.nome, cl.razaosocial "; $texto3= "<tr> <td align=\"left\" width=\"40%\">NOME DO PRODUTO</td> <td align=\"center\" width=\"20%\">QUANTIDADE</td> <td align=\"right\" width=\"20%\">preço UNITÁRIO</td> <td align=\"right\" width=\"20%\">SEMI TOTAL</td> </tr> "; $consulta_cliente_query = $MySQL->query($consulta_cliente); while(list($cliente,$CLIENTE_RAZAOSOCIAL,$CLIENTE_NOME) = mysql_fetch_row($consulta_cliente_query)) { $texto4= "<tr><td colspan=\"4\" align=\"left\">$CLIENTE_RAZAOSOCIAL$CLIENTE_NOME</td></tr>"; $consulta_itens=" SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' and pc.id_cliente=$cliente ORDER BY pe.ID_PRODUTO "; $SUB_TOTAL=0.00; $consulta_itens_query = $MySQL->query($consulta_itens); while(list( $PRODUTO_NOME, $QUANTIDADE, $PRECO_UNI, $SEMI_TOTAL ) = mysql_fetch_row($consulta_itens_query)) { $SUB_TOTAL+=$SEMI_TOTAL; $texto5= "<tr> <td align=\"left\" width=\"40%\">$PRODUTO_NOME</td> <td align=\"center\" width=\"20%\">$QUANTIDADE</td> <td align=\"right\" width=\"20%\">R$ ".number_format($PRECO_UNI, 2, '.', '')."</td> <td align=\"right\" width=\"20%\">R$ ".number_format($SEMI_TOTAL, 2, '.', '')."</td> </tr> "; } $texto6= "<tr><td align=\"right\" colspan=\"4\">TOTAL NA DATA: R$ ".number_format($SUB_TOTAL, 2, '.', '')."</td></tr>"; $TOTAL_GERAL+=$SUB_TOTAL; } $texto7= "</table>"; //////////////////////// require_once("global/funcoes_php/dompdf/dompdf_config.inc.php"); $html = $texto1.$texto2.$texto3.$texto4.$texto5.$texto6.$texto7; $dompdf = new DOMPDF(); $dompdf->load_html($html); $dompdf->set_paper('letter', 'landscape'); $dompdf->render(); $dompdf->stream("exemplo-01.pdf"); ?> </body> </html> Segue o arquivo que contem o acoa=gerrarpdf que NÃO esta funcionando correto: <?php if ($acao == "gerapdf") { $consulta_fornecedor=" SELECT razaosocial, nome FROM fornecedores WHERE id=$id "; $consulta_fornecedor_query = $MySQL->query($consulta_fornecedor); list($FORNECEDOR_RAZAOSOCIAL,$FORNECEDOR_NOME) = mysql_fetch_row($consulta_fornecedor_query); $texto1= "<table width=\"95%\" border=\"1\" align=\"center\"> <tr><td colspan=\"4\" align=\"center\"> RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </td></tr> "; $texto2= "<tr><td colspan=\"4\" align=\"left\">".formata_data($data_relatorio)."</td></tr>"; $consulta_cliente=" SELECT DISTINCT(pc.id_cliente),cl.razaosocial, cl.nome FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor INNER JOIN clientes cl ON cl.id = pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' ORDER BY cl.nome, cl.razaosocial "; $texto3= "<tr> <td align=\"left\" width=\"40%\">NOME DO PRODUTO</td> <td align=\"center\" width=\"20%\">QUANTIDADE</td> <td align=\"right\" width=\"20%\">preço UNITÁRIO</td> <td align=\"right\" width=\"20%\">SEMI TOTAL</td> </tr> "; $consulta_cliente_query = $MySQL->query($consulta_cliente); while(list($cliente,$CLIENTE_RAZAOSOCIAL,$CLIENTE_NOME) = mysql_fetch_row($consulta_cliente_query)) { $texto4= "<tr><td colspan=\"4\" align=\"left\">$CLIENTE_RAZAOSOCIAL$CLIENTE_NOME</td></tr>"; $consulta_itens=" SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' and pc.id_cliente=$cliente ORDER BY pe.ID_PRODUTO "; $SUB_TOTAL=0.00; $consulta_itens_query = $MySQL->query($consulta_itens); while(list( $PRODUTO_NOME, $QUANTIDADE, $PRECO_UNI, $SEMI_TOTAL ) = mysql_fetch_row($consulta_itens_query)) { $SUB_TOTAL+=$SEMI_TOTAL; $texto5= "<tr> <td align=\"left\" width=\"40%\">$PRODUTO_NOME</td> <td align=\"center\" width=\"20%\">$QUANTIDADE</td> <td align=\"right\" width=\"20%\">R$ ".number_format($PRECO_UNI, 2, '.', '')."</td> <td align=\"right\" width=\"20%\">R$ ".number_format($SEMI_TOTAL, 2, '.', '')."</td> </tr> "; } $texto6= "<tr><td align=\"right\" colspan=\"4\">TOTAL NA DATA: R$ ".number_format($SUB_TOTAL, 2, '.', '')."</td></tr>"; $TOTAL_GERAL+=$SUB_TOTAL; } $texto7= "</table>"; require_once("../global/funcoes_php/dompdf/dompdf_config.inc.php"); $html = $texto1.$texto2.$texto3.$texto4.$texto5.$texto6.$texto7; $dompdf = new DOMPDF(); $dompdf->load_html($html); $dompdf->set_paper('letter', 'landscape'); $dompdf->render(); $dompdf->stream("relatorio.pdf"); } ?> A gradeço a quem puder ajudar.
  12. Carlos Rocha

    PHP para PDF

    O problema era que tinha umas chamadas para umas funções mas o codigo delas ainda não esta incluso na pagina. Porem agora surge outro problema: O pdf não esta lendo o HTML. Ele esta imprimindo as tags. Como faço para o pdf reconhecer as tags HTML? Segue o que eu já mudei <?php header('Content-Type: text/html; charset=utf-8'); include("global/config/conexao.php"); include("global/funcoes_php/formata_cep.php"); include("global/funcoes_php/formata_tel.php"); include("global/funcoes_php/formata_cpf.php"); include("global/funcoes_php/formata_cnpj.php"); include("global/funcoes_php/formata_data.php"); $id=1; $data_relatorio="2011-07-06"; $cliente=1; //////////////////////// $consulta_fornecedor=" SELECT razaosocial, nome FROM fornecedores WHERE id=$id "; $consulta_fornecedor_query = $MySQL->query($consulta_fornecedor); list($FORNECEDOR_RAZAOSOCIAL,$FORNECEDOR_NOME) = mysql_fetch_row($consulta_fornecedor_query); $texto1= "<table width=\"95%\" border=\"1\" align=\"center\"> <tr><td colspan=\"4\" align=\"center\"> RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </td></tr> "; $texto2= "<tr><td colspan=\"4\" align=\"left\">".formata_data($data_relatorio)."</td></tr>"; $consulta_cliente=" SELECT DISTINCT(pc.id_cliente),cl.razaosocial, cl.nome FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor INNER JOIN clientes cl ON cl.id = pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' ORDER BY cl.nome, cl.razaosocial "; $texto3= "<tr> <td align=\"left\" width=\"40%\">NOME DO PRODUTO</td> <td align=\"center\" width=\"20%\">QUANTIDADE</td> <td align=\"right\" width=\"20%\">preço UNITÁRIO</td> <td align=\"right\" width=\"20%\">SEMI TOTAL</td> </tr> "; $consulta_cliente_query = $MySQL->query($consulta_cliente); while(list($cliente,$CLIENTE_RAZAOSOCIAL,$CLIENTE_NOME) = mysql_fetch_row($consulta_cliente_query)) { $texto4= "<tr><td colspan=\"4\" align=\"left\">$CLIENTE_RAZAOSOCIAL$CLIENTE_NOME</td></tr>"; $consulta_itens=" SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' and pc.id_cliente=$cliente ORDER BY pe.ID_PRODUTO "; $SUB_TOTAL=0.00; $consulta_itens_query = $MySQL->query($consulta_itens); while(list( $PRODUTO_NOME, $QUANTIDADE, $PRECO_UNI, $SEMI_TOTAL ) = mysql_fetch_row($consulta_itens_query)) { $SUB_TOTAL+=$SEMI_TOTAL; $texto5= "<tr> <td align=\"left\" width=\"40%\">$PRODUTO_NOME</td> <td align=\"center\" width=\"20%\">$QUANTIDADE</td> <td align=\"right\" width=\"20%\">R$ ".number_format($PRECO_UNI, 2, '.', '')."</td> <td align=\"right\" width=\"20%\">R$ ".number_format($SEMI_TOTAL, 2, '.', '')."</td> </tr> "; } $texto6= "<tr><td align=\"right\" colspan=\"4\">TOTAL NA DATA: R$ ".number_format($SUB_TOTAL, 2, '.', '')."</td></tr>"; $TOTAL_GERAL+=$SUB_TOTAL; $texto7= "<tr><td align=\"right\" colspan=\"4\">Gerar PDF</td></tr>"; } $texto8= "</table>"; //////////////////////// include("global/funcoes_php/fpdf/fpdf.php");// cria o documento PDF $pdf = new FPDF('P','cm','A4'); $pdf->Open('arquivo.pdf'); $pdf->AddPage(); $pdf->SetFont('helvetica', 'B', 16); $pdf->Cell(0, 2,'titulo principal', 0, 1, 'C'); $pdf->SetFont('Arial', '', 10); $texto = $texto1.$texto2.$texto3.$texto4.$texto5.$texto6.$texto7.$texto8; print $texto; $pdf->MultiCell(0,0.5,$texto, 0, 'J'); $pdf->Output('arquivo.pdf'); ?>
  13. Carlos Rocha

    PHP para PDF

    Pessoal. Boa noite Estou tentando gerar um pdf a partir do php. Tentei com o codigo abaixo que funcionou (usei para testar). <?php include_once("global/funcoes_php/fpdf/fpdf.php");// cria o documento PDF $pdf = new FPDF('P','cm','A4'); $pdf->Open('arquivo.pdf'); $pdf->AddPage(); $pdf->SetFont('helvetica', 'B', 16); $pdf->Cell(0, 2,'titulo principal', 0, 1, 'C'); $pdf->SetFont('Arial', '', 10); $texto = "Texto para teste"; $pdf->MultiCell(0,0.5,$texto, 0, 'J'); $pdf->Output('arquivo.pdf'); ?> Dai, tentei adaptar com uma consulta ao mysql. Dai não gera o pdf. Gostaria de ajuda para achar o erro. O código abaixo funciona sem geração de pdf. <?php include("global/config/conexao.php"); $id=1; $data_relatorio="2011-07-06"; $cliente=1; include("global/funcoes_php/fpdf/fpdf.php");// cria o documento PDF $pdf = new FPDF('P','cm','A4'); $pdf->Open('arquivo.pdf'); $pdf->AddPage(); $pdf->SetFont('helvetica', 'B', 16); $pdf->Cell(0, 2,'titulo principal', 0, 1, 'C'); $pdf->SetFont('Arial', '', 10); //////////////////////// $consulta_fornecedor=" SELECT razaosocial, nome FROM fornecedores WHERE id=$id "; list($FORNECEDOR_RAZAOSOCIAL,$FORNECEDOR_NOME) = mysql_fetch_row($MySQL->query($consulta_fornecedor)); $texto1= "<table width=\"95%\" border=\"1\" align=\"center\"> <tr><td colspan=\"4\" align=\"center\"> RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </td></tr> "; $texto2= "<tr><td colspan=\"4\" align=\"left\">".formata_data($data_relatorio)."</td></tr>"; $consulta_cliente=" SELECT DISTINCT(pc.id_cliente),cl.razaosocial, cl.nome FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor INNER JOIN clientes cl ON cl.id = pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' ORDER BY cl.nome, cl.razaosocial "; $texto3= "<tr> <td align=\"left\" width=\"40%\">NOME DO PRODUTO</td> <td align=\"center\" width=\"20%\">QUANTIDADE</td> <td align=\"right\" width=\"20%\">preço UNITÁRIO</td> <td align=\"right\" width=\"20%\">SEMI TOTAL</td> </tr> "; $consulta_cliente_query = $MySQL->query($consulta_cliente); while(list($cliente,$CLIENTE_RAZAOSOCIAL,$CLIENTE_NOME) = mysql_fetch_row($consulta_cliente_query)) { $texto4= "<tr><td colspan=\"4\" align=\"left\">$CLIENTE_RAZAOSOCIAL$CLIENTE_NOME</td></tr>"; $consulta_itens=" SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' and pc.id_cliente=$cliente ORDER BY pe.ID_PRODUTO "; $SUB_TOTAL=0.00; $consulta_itens_query = $MySQL->query($consulta_itens); while(list( $PRODUTO_NOME, $QUANTIDADE, $PRECO_UNI, $SEMI_TOTAL ) = mysql_fetch_row($consulta_itens_query)) { $SUB_TOTAL+=$SEMI_TOTAL; $texto5= "<tr> <td align=\"left\" width=\"40%\">$PRODUTO_NOME</td> <td align=\"center\" width=\"20%\">$QUANTIDADE</td> <td align=\"right\" width=\"20%\">R$ ".number_format($PRECO_UNI, 2, '.', '')."</td> <td align=\"right\" width=\"20%\">R$ ".number_format($SEMI_TOTAL, 2, '.', '')."</td> </tr> "; } $texto6= "<tr><td align=\"right\" colspan=\"4\">TOTAL NA DATA: R$ ".number_format($SUB_TOTAL, 2, '.', '')."</td></tr>"; $TOTAL_GERAL+=$SUB_TOTAL; $texto7= "<tr><td align=\"right\" colspan=\"4\">Gerar PDF</td></tr>"; } $texto8= "</table>"; //////////////////////// $texto = $texto1.$texto2.$texto3.$texto4.$texto5.$texto6.$texto7.$texto8; print $texto; $pdf->MultiCell(0,0.5,$texto, 0, 'J'); $pdf->Output('arquivo.pdf'); ?> Grato a quem puder.ajudar
  14. Carlos Rocha

    Loop infinito

    Pronto. Grato a todos que ajudaram: <?php if ($acao == "ver") { $consulta_fornecedor=" SELECT razaosocial, nome FROM fornecedores WHERE id=$id "; $consulta_data=" SELECT DISTINCT(pc.data) FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor WHERE fd.id = $id ORDER BY pc.data desc "; list($FORNECEDOR_RAZAOSOCIAL,$FORNECEDOR_NOME) = mysql_fetch_row($MySQL->query($consulta_fornecedor)); echo "<table align=\"left\" width=\"95%\" border=\"1\"> <tr><td colspan=\"4\" align=\"center\"> RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </td></tr> "; $consulta_data_query = $MySQL->query($consulta_data); while(list($data) = mysql_fetch_row($consulta_data_query)) { echo "<tr><td colspan=\"4\" align=\"left\">".formata_data($data)."</td></tr>"; $consulta_cliente=" SELECT DISTINCT(pc.id_cliente),cl.razaosocial, cl.nome FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor INNER JOIN clientes cl ON cl.id = pc.id_cliente WHERE fd.id = $id and pc.data = '$data' ORDER BY cl.nome, cl.razaosocial "; echo "<tr> <td align=\"left\" width=\"40%\">NOME DO PRODUTO</td> <td align=\"center\" width=\"20%\">QUANTIDADE</td> <td align=\"right\" width=\"20%\">preço UNITÁRIO</td> <td align=\"right\" width=\"20%\">SEMI TOTAL</td> </tr> "; $consulta_cliente_query = $MySQL->query($consulta_cliente); while(list($cliente,$CLIENTE_RAZAOSOCIAL,$CLIENTE_NOME) = mysql_fetch_row($consulta_cliente_query)) { echo "<tr><td colspan=\"4\" align=\"left\">$CLIENTE_RAZAOSOCIAL$CLIENTE_NOME</td></tr>"; $consulta_itens=" SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = $id and pc.data = '$data' and pc.id_cliente=$cliente ORDER BY pe.ID_PRODUTO "; $SUB_TOTAL=0.00; $consulta_itens_query = $MySQL->query($consulta_itens); while(list( $PRODUTO_NOME, $QUANTIDADE, $PRECO_UNI, $SEMI_TOTAL ) = mysql_fetch_row($consulta_itens_query)) { $SUB_TOTAL+=$SEMI_TOTAL; echo "<tr> <td align=\"left\" width=\"40%\">$PRODUTO_NOME</td> <td align=\"center\" width=\"20%\">$QUANTIDADE</td> <td align=\"right\" width=\"20%\">R$ ".number_format($PRECO_UNI, 2, '.', '')."</td> <td align=\"right\" width=\"20%\">R$ ".number_format($SEMI_TOTAL, 2, '.', '')."</td> </tr> "; } echo "<tr><td align=\"right\" colspan=\"4\">TOTAL NA DATA: R$ ".number_format($SUB_TOTAL, 2, '.', '')."</td></tr>"; $TOTAL_GERAL+=$SUB_TOTAL; } } echo "<tr><td colspan=\"4\" align=\"center\">TOTAL GERAL: R$ ".number_format($TOTAL_GERAL, 2, '.', '')."</td></tr>"; echo "</table>"; } ?>
  15. Carlos Rocha

    Loop infinito

    Não tem exibição de problema. Eu pedi para imprimir a variavel que contem a consulta, coloquei ela no mysql front e retornou normalmente. em erros. A unica novidade é que o campo p.nome, retornou o mesmo nome em duas linhas de retorno (registros) Olha o que exibe: SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = 2 and pc.data = '2011-07-14' and pc.id_cliente=1 ORDER BY pe.ID_PRODUTO Erro na consulta da query! Resource id #16 SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = 2 and pc.data = '2011-07-06' and pc.id_cliente=1 ORDER BY pe.ID_PRODUTO Erro na consulta da query! Resource id #18 RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR Malta S/A 2011-07-14 Carlos Rocha 2011-07-06 Carlos Rocha São 3 consultas. Uma pra retornar a data, outra para retornar o cliente e outra para retornar os ítens que aquele cliente comprou naquela data daquele fornecedor Alterei e ficoiu assim: <?php if ($acao == "ver") { $consulta_fornecedor=" SELECT razaosocial, nome FROM fornecedores WHERE id=$id "; $consulta_data=" SELECT DISTINCT(pc.data) FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor WHERE fd.id = $id ORDER BY pc.data desc "; list($FORNECEDOR_RAZAOSOCIAL,$FORNECEDOR_NOME) = mysql_fetch_row($MySQL->query($consulta_fornecedor)); echo "<table align=\"left\" width=\"95%\" border=\"1\"> <tr><td colspan=\"4\" align=\"center\"> RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </td></tr> "; $consulta_data_query = $MySQL->query($consulta_data); while(list($data) = mysql_fetch_row($consulta_data_query)) { echo "<tr><td colspan=\"4\" align=\"left\">$data</td></tr>"; $TOTAL_GERAL.=$SUB_TOTAL; $consulta_cliente=" SELECT DISTINCT(pc.id_cliente),cl.razaosocial, cl.nome FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor INNER JOIN clientes cl ON cl.id = pc.id_cliente WHERE fd.id = $id and pc.data = '$data' ORDER BY cl.nome, cl.razaosocial "; $consulta_cliente_query = $MySQL->query($consulta_cliente); while(list($cliente,$CLIENTE_RAZAOSOCIAL,$CLIENTE_NOME) = mysql_fetch_row($consulta_cliente_query)) { echo "<tr><td colspan=\"4\" align=\"left\">$CLIENTE_RAZAOSOCIAL$CLIENTE_NOME</td></tr>"; $SEMI_TOTAL=0.00; $consulta_itens=" SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = $id and pc.data = '$data' and pc.id_cliente=$cliente ORDER BY pe.ID_PRODUTO "; print $consulta_itens; $consulta_itens_query = $MySQL->query($consulta_itens); while(list( $PRODUTO_NOME, $QUANTIDADE, $PRECO_UNI, $SEMI_TOTAL ) = mysql_fetch_row($MySQL->query($consulta_itens_query))) { $SUB_TOTAL.=$SEMI_TOTAL; echo "<tr> <td align=\"left\" width=\"40%\">$PRODUTO_NOME</td> <td align=\"center\" width=\"20%\">$QUANTIDADE</td> <td align=\"right\" width=\"20%\">$PRECO_UNI</td> <td align=\"right\" width=\"20%\">$SEMI_TOTAL</td> </tr> <tr><td align=\"right\" colspan=\"4\">$SUB_TOTAL</td></tr> "; } } echo "<tr><td colspan=\"4\" align=\"center\">$TOTAL_GERAL</td></tr>"; } echo "</table>"; } ?>
  16. Carlos Rocha

    Loop infinito

    Observei o seguinte: Na minha query, tem uma chamada ao campo data do mysql. Quando ele retorna, esta gerndo loop infinito. Tirei ele de sena eo loop parou como posso resolver isso?
  17. Carlos Rocha

    Loop infinito

    a trava esta acontecendo nessa linha aqui while(list($data) = mysql_fetch_row($MySQL->query($consulta_data))) { Antes dela não da o problema Se colocar, dentro do wile, e depois do echo $data, um exit. ele imprime uma data e para. O MYSQL retorna duas datas. Fiz assim tambem: while(FALSE !== (list($data) = mysql_fetch_row($MySQL->query($consulta_data)))) Mas o loop infinito continua.
  18. Carlos Rocha

    Loop infinito

    Pessoal, Estou rodando o código abaixo e esta dando loop infinito no php . Mas, fazendo a consulta no mysql front não da loop O que será que esta acontecendo? <?php if ($acao == "ver") { $consulta_fornecedor=" SELECT razaosocial, nome FROM fornecedores WHERE id=$id "; $consulta_data=" SELECT DISTINCT(pc.data) FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor WHERE fd.id = $id ORDER BY pc.data desc "; $consulta_cliente=" SELECT DISTINCT(pc.id_cliente),cl.razaosocial, cl.nome FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor INNER JOIN clientes cl ON cl.id = pc.id_cliente WHERE fd.id = $id and pc.data = '$data' ORDER BY cl.nome, cl.razaosocial "; $consulta_itens=" SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = $id and pc.data = '$data' and pc.id_cliente=$cliente ORDER BY pe.ID_PRODUTO "; list($FORNECEDOR_RAZAOSOCIAL,$FORNECEDOR_NOME) = mysql_fetch_row($MySQL->query($consulta_fornecedor)); echo "<table align=\"center\" width=\"95%\"> <tr><td colspan=\"4\" align=\"center\"> RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </td></tr> "; while(list($data) = mysql_fetch_row($MySQL->query($consulta_data))) { echo "<tr><td colspan=\"4\" align=\"center\">$data</td></tr>"; while(list($cliente,$CLIENTE_RAZAOSOCIAL,$CLIENTE_NOME) = mysql_fetch_row($MySQL->query($consulta_cliente))) { echo "<tr><td colspan=\"4\" align=\"center\">$CLIENTE_RAZAOSOCIAL$CLIENTE_NOME</td></tr>"; $SEMI_TOTAL=0.00; while(list( $PRODUTO_NOME, $QUANTIDADE, $PRECO_UNI, $SEMI_TOTAL ) = mysql_fetch_row($MySQL->query($consulta_itens))) { $SUB_TOTAL.=$SEMI_TOTAL; echo "<tr> <td align=\"center\">$PRODUTO_NOME</td> <td align=\"center\">$PRODUTO_NOME</td> <td align=\"center\">$PRODUTO_NOME</td> <td align=\"center\">$PRODUTO_NOME</td> </tr> <tr><td align=\"right\">$SUB_TOTAL</td></tr> "; } } } echo "</table>"; } ?>
  19. Bom, Se $metodos->verAlteracaoDADOS($TB,$idTB,$id) é um array, faça var_dump($metodos->verAlteracaoDADOS($TB,$idTB,$id)); E vê o que imprime
  20. Faz assim: public function verAlteracaoDADOS($TB,$idTB,$id){ $SqlVer = mysql_query("SELECT * FROM ".$TB." WHERE ".$idTB." = '".$id."'"); if (mysql_num_rows($SqlVer)==0) { echo "Não houve registro"; } else { while(list($NomeCliente,$IdadeCliente) = mysql_fetch_array($SqlVer)) { echo $NomeCliente; echo $IdadeCliente; } } }
  21. Pessoal. É o seguinte: Depois da ajuda de vocês, eu consegui fazer as adaptações ao meu script. Poré, ainda restam dois problemas do Firefox em relação ao I.E. 1) Como liberar a tecla delete e as teclas seta para direita e esquerda do teclado quando usando o firefox em um evento? É que estou usando uma mascara para moeda e, como o campo já vem preechido para edição, não consigo edita-lo. 2) Quando faço campo.focus(); se o campo for um input text, o foco funciona no ff e no ie. Mas, se o campo for um select option ai só funciona no i.e. Já tentei alterar para campo.select; campo.select(); campo.selected; campo.selected(); e nada. Grato a quem puder ajudar // JavaScript Document function disablelink( e ){ var evt = window.event || e e.preventDefault(); return false; } function validaprodutoadcionado(form,campo2,campo3,campo5) { if(document.getElementById(campo2).value=="") { alert("Preencha o campo Preço: campo obrigatório!!!"); document.getElementById(campo2).focus(); return (false); } if(document.getElementById(campo3).value=="") { alert("Preencha o campo Imposto: campo obrigatório!!!"); document.getElementById(campo3).focus(); return (false); } if(document.getElementById(campo5).value=="#") { alert("Escolha Posição: campo obrigatório!!!"); document.getElementById(campo5).focus(); return (false); } } Puxa. Ainda estou com esta dificuldade.
  22. Ola pessoal. Bom Dia! Tenho o código: <a href=\"#\" onclick=\"validaprodutoadcionado('adcionatodos','{$i}[novo_preco]','{$i}[novo_imposto]','{$i}[condicao]'); this.href='carrinho.php?op=adicionar&id_produto=$id&novo_preco='+document.getElementById('{$i}[novo_preco]').value+'&id_fornece=$id_fornece&novo_imposto='+document.getElementById('{$i}[novo_imposto]').value+'&condicao='+document.getElementById('{$i}[condicao]').value\" > Enviar </a> Um href com um onclick. Acontece, que quando eu chamo a função validaprodutoadcionado, que funciona certinho, acontece um problema: se eu colocar return antes da chamada da função, como não será colocado submit() no fim da função pois é apenas uma linha do form que vai e não o form todo, o href não segue seu destino. E, caso eu não coloque o return na chamada da função, ai, ainda que a função valide certo e faça o focus(), ele constinuará pois não há o return antes da chamada da função. como sair dessa? Segue a função: function validaprodutoadcionado(form,campo2,campo3,campo5) { if(document.getElementById(campo2).value=="") { alert("Preencha o campo Preço: campo obrigatório!!!"); document.getElementById(campo2).focus(); return (false); } if(document.getElementById(campo3).value=="") { alert("Preencha o campo Imposto: campo obrigatório!!!"); document.getElementById(campo3).focus(); return (false); } if(document.getElementById(campo5).value=="#") { alert("Escolha Posição: campo obrigatório!!!"); document.getElementById(campo5).focus(); return (false); } }
  23. Olha o que aconteceu: Fiz assim: <script language="javascript"> function validatodos() { for (i=0; i<((document.adcionatodos.elements.length-1)/6); i++) { if (document.getElementById(i+"[novo_preco]").value =="") { alert("Preencha o campo Preço: campo obrigatório!!!"); document.getElementById(i+"novo_preco").focus(); return (false); } if (document.getElementById(i+"[novo_imposto]").value =="") { alert("Preencha o campo Imposto: campo obrigatório!!!"); document.getElementById(i+"novo_imposto").focus(); return (false); } if (document.getElementById(i+"[marcado]").checked == true && document.getElementById(i+"[condicao]").value =="#") { alert("Você Selecionou o produto mas não escolheu a condição!!!"); document.getElementById(i+"[marcado]").focus(); return (false); } } document.getElementById("adcionatodos").submit(); } </script> Acontece, que ele não esta conseguindo mostrar o foco no select do campo não marcado. Como selecinar isso? O form ficou assim: <tbody><tr><td colspan="10" align="center"><h3>Produtos de: Malta S/A</h3></td></tr> <tr><td colspan="10" align="center"><a href="?acao=mostra_fornecedores">Escolher outro fornecedor</a></td></tr> <tr> <td align="center">Foto</td> <td align="center">Produto</td> <td align="center">Grupo</td> <td align="center">Descrição</td> <td align="center">Qtde.<br>na caixa</td> <td align="center">Preço</td> <td align="center">Imposto (%)</td> <td align="center">Marcar para<br>todos os ítens</td> <td align="center">Posição</td> <td align="center">Adicionar</td> </tr> <form action="carrinho.php?op=adicionar" name="adcionatodos" id="adcionatodos" method="post"></form><input name="0[id_prod]" id="0[id_prod]" value="3" type="hidden"> <input name="id_fornece" id="id_fornece" value="2" type="hidden"> <tr> <td align="center"><img src="../img/sem_foto.png" alt="Sem foto" border="0" width="50"></td> <td align="let">Cevada</td> <td align="let">Produtos de Padaria</td> <td align="center"><a href="?acao=saibamais&amp;id=3&amp;id_fornece=2"><img src="../img/saiba_mais.png" alt="Saiba Mais" border="0"></a></td> <td align="right">15 &nbsp;</td> <td align="left">&nbsp;R$ <input size="4" name="0[novo_preco]" id="0[novo_preco]" value="3.30" style="text-align: right;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"></td> <td align="center"> <input size="4" name="0[novo_imposto]" id="0[novo_imposto]" value="0" style="text-align: center;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"> %</td> <td align="center"><input name="0[marcado]" id="0[marcado]" type="checkbox"></td> <td align="center" valign="middle"> <select name="0[condicao]" id="0[condicao]"> <option value="#">Condição</option> <option value="1">Complemento</option> <option value="2">Encarte</option> </select> </td> <td align="center"> <a href="#" onclick="validaprodutoadcionado('adcionatodos','0[novo_preco]','0[novo_imposto]','0[condicao]'); this.href='carrinho.php?op=adicionar&amp;id_produto=3&amp;novo_preco='+document.getElementById('0[novo_preco]').value+'&amp;id_fornece=2&amp;novo_imposto='+document.getElementById('0[novo_imposto]').value+'&amp;condicao='+document.getElementById('0[condicao]').value"> Enviar </a> </td> </tr><input name="1[id_prod]" id="1[id_prod]" value="4" type="hidden"> <input name="id_fornece" id="id_fornece" value="2" type="hidden"> <tr> <td align="center"><img src="../img/sem_foto.png" alt="Sem foto" border="0" width="50"></td> <td align="let">Farinha</td> <td align="let">Produtos de Padaria</td> <td align="center"><a href="?acao=saibamais&amp;id=4&amp;id_fornece=2"><img src="../img/saiba_mais.png" alt="Saiba Mais" border="0"></a></td> <td align="right">24 &nbsp;</td> <td align="left">&nbsp;R$ <input size="4" name="1[novo_preco]" id="1[novo_preco]" value="2.50" style="text-align: right;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"></td> <td align="center"> <input size="4" name="1[novo_imposto]" id="1[novo_imposto]" value="0" style="text-align: center;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"> %</td> <td align="center"><input name="1[marcado]" id="1[marcado]" type="checkbox"></td> <td align="center" valign="middle"> <select name="1[condicao]" id="1[condicao]"> <option value="#">Condição</option> <option value="1">Complemento</option> <option value="2">Encarte</option> </select> </td> <td align="center"> <a href="#" onclick="validaprodutoadcionado('adcionatodos','1[novo_preco]','1[novo_imposto]','1[condicao]'); this.href='carrinho.php?op=adicionar&amp;id_produto=4&amp;novo_preco='+document.getElementById('1[novo_preco]').value+'&amp;id_fornece=2&amp;novo_imposto='+document.getElementById('1[novo_imposto]').value+'&amp;condicao='+document.getElementById('1[condicao]').value"> Enviar </a> </td> </tr><input name="2[id_prod]" id="2[id_prod]" value="6" type="hidden"> <input name="id_fornece" id="id_fornece" value="2" type="hidden"> <tr> <td align="center"><img src="../img/sem_foto.png" alt="Sem foto" border="0" width="50"></td> <td align="let">Pão</td> <td align="let">Produtos de Padaria</td> <td align="center"><a href="?acao=saibamais&amp;id=6&amp;id_fornece=2"><img src="../img/saiba_mais.png" alt="Saiba Mais" border="0"></a></td> <td align="right">12 &nbsp;</td> <td align="left">&nbsp;R$ <input size="4" name="2[novo_preco]" id="2[novo_preco]" value="3.20" style="text-align: right;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"></td> <td align="center"> <input size="4" name="2[novo_imposto]" id="2[novo_imposto]" value="0" style="text-align: center;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"> %</td> <td align="center"><input name="2[marcado]" id="2[marcado]" type="checkbox"></td> <td align="center" valign="middle"> <select name="2[condicao]" id="2[condicao]"> <option value="#">Condição</option> <option value="1">Complemento</option> <option value="2">Encarte</option> </select> </td> <td align="center"> <a href="#" onclick="validaprodutoadcionado('adcionatodos','2[novo_preco]','2[novo_imposto]','2[condicao]'); this.href='carrinho.php?op=adicionar&amp;id_produto=6&amp;novo_preco='+document.getElementById('2[novo_preco]').value+'&amp;id_fornece=2&amp;novo_imposto='+document.getElementById('2[novo_imposto]').value+'&amp;condicao='+document.getElementById('2[condicao]').value"> Enviar </a> </td> </tr> <tr> <td colspan="8" align="center" height="50" valign="middle"> <input onclick="return validatodos();" value="Enviar todos os ítens" type="button"> </td> </tr> </tbody>
  24. Pessoal. Tenho um form que carrega seus campos dinamicamente. Ou seja, dependendo do que chega do banco, um campo "nome", por exemplo, pode ter N vezes. Então, o jeito foi fazer assim: {$i} [nome]. Desta forma terei um array com N campos nome. Mas ai surge uma dificuldade. Como saber, antes de submeter o form, em JavaScript, quantos campos nome eu terei dinamicamente? Isso é tudo que eu preciso saber. Dai, faço as validações com o : for (i=0;i<quantos_campos;i++) { if(document.GetElementById(i+"nome_do_campo").value==0) { ...
  25. Puxa. Ainda não consegui! Será que algume pode me dizer então com eu faço para contar, em JS quantos indices tem um array do php?
×
×
  • Criar Novo...