Ir para conteúdo
Fórum Script Brasil

svjets

Membros
  • Total de itens

    216
  • Registro em

  • Última visita

Tudo que svjets postou

  1. Antes do while você cria a variável e zera ela. dentro do if você faz o auto incremento desta variável.
  2. Se zerar o "$vl_sub_total" antes do segundo while não resolve?
  3. Coloca o seu script atual aqui.
  4. Se eu entendi direito você deve trocar isto: $vl_sub_total = $cp['vl_atacado'] * $cp['qt_produto']; por isto: $vl_sub_total += $cp['vl_atacado'] * $cp['qt_produto']; E tirar isto para fora do while (caso quira apenas o total, sem valores parciais): echo $vl_sub_total.'<br>';
  5. svjets

    [duvida]novas postagens

    Depois de: while($tlin = mysql_fetch_array($result)) { $tid[$i]=$tlin['id_topic']; $tforum[$i]=$tlin['id_forum']; $tnome[$i]=$tlin['title']; $tdate[$i]=$tlin['date']; $i++; } coloque: echo $i; exit; Só pra saber se é gerado alguma resposta da primeira pesquisa. Se for > ou igual a 1, deveria funcionar.
  6. svjets

    [duvida]novas postagens

    Ok, então é só deixar id_forum sem o "$". Vi um erro, onde está: else { rid[$tdate[$j]]=$tid[$j]; rforum[$tdate[$j]]=$tforum[$j]; $rnome[$tdate[$j]]=$tnome[$j]; $rtotal[$tdate[$j]]=0; } Substituir por: else { $rid[$tdate[$j]]=$tid[$j]; $rforum[$tdate[$j]]=$tforum[$j]; $rnome[$tdate[$j]]=$tnome[$j]; $rtotal[$tdate[$j]]=0; } Nesse caso eu deixei de colocar o "$", heheh. Se ainda assim não retornar um array, tem que verificar as condições de busca, se estão corretas ou não.
  7. Qual função? A última que postei? Se for ela, não retorna nenhum valor porque não existe todas as correlações feitas pois vejamos, pela estrutura do teu banco que você postou, existem 2 linhas de dados por tabela. A tabela bastidor tem um idbastidor igual a 44 e outro igual a 45. Na função que escrevi teria que haver um idbastidor na tabela equipamento igual a um dos dois valores de idbastidor da tabela bastidor, por exemplo. Como o idbastidor tem valor 0 nas duas linhas de dados da tabela equipamento e valor de 44 e 45 na tabela bastidor nunca haverá igualdade entre eles, o que faz com que a busca retorne um conjunto vazio (0 linhas de dados).
  8. svjets

    [duvida]novas postagens

    O errro ocorre porque a busca está retornando arrays vazios. Antes de corrigir o problema de arrays vazios corrija isso aqui: $sql = "SELECT * FROM ".TABLE_SQL." WHERE id_forum=".id_forum." AND definition = 1 AND status = 1 AND level_topic = 0 OR level_topic = 5 ORDER BY date DESC"; No trecho: WHERE id_forum=".id_forum." Creio que seja: WHERE id_forum=".$id_forum." Sendo que $id_forum vem de algum GET, provavelmente, certo? Porém, por mais que faça essa correção, se algum nível do fórum (determinado por id_forum) não tiver nenhum tópico criado o erro pode ocorrer também, aí seria interessante colocar um "if" para testar se existe algum dos arrays (existindo 1, os outros têm de existir também). O código corrigido seria: <?php $sql = "SELECT * FROM ".TABLE_SQL." WHERE id_forum=".$id_forum." AND definition = 1 AND status = 1 AND level_topic = 0 OR level_topic = 5 ORDER BY date DESC"; $result = mysql_query($sql); $i=0 while($tlin = mysql_fetch_array($result)) { $tid[$i]=$tlin['id_topic']; $tforum[$i]=$tlin['id_forum']; $tnome[$i]=$tlin['title']; $tdate[$i]=$tlin['date']; $i++; } for($j=0;$j++;$j<$i) { $sql = mysql_query("SELECT *,count(*) as total FROM ".TABLE_SQL." WHERE id_topic=".$tid[$j]." definition = 2 AND status = 1 ORDER BY date DESC LIMIT 1"); if($rlin = mysql_fetch_array($sql)) { $rid[$rlin['date']]=$tid[$j]; $rforum[$rlin['date']]=$tforum[$j]; $rnome[$rlin['date']]=$tnome[$j]; $rtotal[$rlin['date']]=$rlin['total']; } else { rid[$tdate[$j]]=$tid[$j]; rforum[$tdate[$j]]=$tforum[$j]; $rnome[$tdate[$j]]=$tnome[$j]; $rtotal[$tdate[$j]]=0; } } if(isset($rid)) { ksort($rid); ksort($rforum); ksort($rnome); ksort($rtotal); $ord_id=array_reverse($rid,true); $ord_forum=array_reverse($rforum,true); $ord_nome=array_reverse($rnome,true); $ord_total=array_reverse($rtotal,true); $c=0; $table_topics_normal = '<tr class="row3"><td>Tópicos do fórum</td><td></td></tr>'; foreach($ord_id as $indice => $id) { $num=2; if($c % 2 == 0) { $num=1; } $c++; $table_topics_normal .= '<tr class="row'.$num.'"> <td><a href="view_topic.php?f='.$ord_forum[$indice].'&t='.$id.'">'.$ord_nome[$indice].'</a></td><td>'.$ord_total.'</td> </tr>'; } echo $table_topics_normal; echo "<br />"; } ?> Testa aí pra ver se dá certo. Quanto aos créditos, não se faz necessário. ;)
  9. Tinha um errinho: $sql = "SELECT b.*,p.*,l.*, f.*, c.*, e.*, r.* FROM bastidor b,posicao p,local l, funcao f, cabo c, equipamento e, responsavel r WHERE b.idposicao=p.idposicao AND p.idlocal=l.idlocal AND c.idbastidor1=b.idbastidor AND f.idfuncao=c.idfuncao AND e.idbastidor=b.idbastidor AND r.idresponsavel=b.ideresponsavel ORDER BY b.idbastidor ASC"; Corrigido: $sql = "SELECT b.*,p.*,l.*, f.*, c.*, e.*, r.* FROM bastidor b,posicao p,local l, funcao f, cabo c, equipamento e, responsavel r WHERE b.idposicao=p.idposicao AND p.idlocal=l.idlocal AND c.idbastidor1=b.idbastidor AND f.idfuncao=c.idfuncao AND e.idbastidor=b.idbastidor AND r.idresponsavel=b.idresponsavel ORDER BY b.idbastidor ASC"; Isadora, essa função não é só pra pegar os cadastros já exisentes? Onde todos os campos já estão preenchidos e linkados? Se você tiver que fazer uma busca que alguns campos retornarão em branco por falta de preenchimento então sugiro que você crie uma nova tabela no BD com todos os campos se desejar fazer uma busca única senão, para gerar a lista terá que fazer uma busca para cada tabela independente e utilizar os "ids" de referência para fazer a busca em outra tabela, uma a uma. Não sei se fui claro.
  10. Acho que não vai dar certo (heheh) mas, tente isso: $sql = "SELECT b.*,p.*,l.*, f.*, c.*, e.*, r.* FROM bastidor b,posicao p,local l, funcao f, cabo c, equipamento e, responsavel r WHERE b.idposicao=p.idposicao AND p.idlocal=l.idlocal AND c.idbastidor1=b.idbastidor AND f.idfuncao=c.idfuncao AND e.idbastidor=b.idbastidor AND r.idresponsavel=b.ideresponsavel ORDER BY b.idbastidor ASC";
  11. svjets

    [duvida]novas postagens

    A solução que encontrei e que provavelmente não é a mais simples é essa, heheh: <?php $sql = "SELECT * FROM ".TABLE_SQL." WHERE id_forum=".id_forum." AND definition = 1 AND status = 1 AND level_topic = 0 OR level_topic = 5 ORDER BY date DESC"; $result = mysql_query($sql); $i=0 while($tlin = mysql_fetch_array($result)) { $tid[$i]=$tlin['id_topic']; $tforum[$i]=$tlin['id_forum']; $tnome[$i]=$tlin['title']; $tdate[$i]=$tlin['date']; $i++; } for($j=0;$j++;$j<$i) { $sql = mysql_query("SELECT *,count(*) as total FROM ".TABLE_SQL." WHERE id_topic=".$tid[$j]." definition = 2 AND status = 1 ORDER BY date DESC LIMIT 1"); if($rlin = mysql_fetch_array($sql)) { $rid[$rlin['date']]=$tid[$j]; $rforum[$rlin['date']]=$tforum[$j]; $rnome[$rlin['date']]=$tnome[$j]; $rtotal[$rlin['date']]=$rlin['total']; } else { rid[$tdate[$j]]=$tid[$j]; rforum[$tdate[$j]]=$tforum[$j]; $rnome[$tdate[$j]]=$tnome[$j]; $rtotal[$tdate[$j]]=0; } } ksort($rid); ksort($rforum); ksort($rnome); ksort($rtotal); $ord_id=array_reverse($rid,true); $ord_forum=array_reverse($rforum,true); $ord_nome=array_reverse($rnome,true); $ord_total=array_reverse($rtotal,true); $c=0; $table_topics_normal = '<tr class="row3"><td>Tópicos do fórum</td><td></td></tr>'; foreach($ord_id as $indice => $id) { $num=2; if($c % 2 == 0) { $num=1; } $c++; $table_topics_normal .= '<tr class="row'.$num.'"> <td><a href="view_topic.php?f='.$ord_forum[$indice].'&t='.$id.'">'.$ord_nome[$indice].'</a></td><td>'.$ord_total.'</td> </tr>'; } echo $table_topics_normal; echo "<br />"; ?>
  12. svjets

    [duvida]novas postagens

    Está errada sua lógica, não tenho tempod e refazê-lo hoje, só amanhã. Mas para já ir adiantando, você passou essa estrutura: 1.post | 2.id_forum | 3.id_topic | 4.title | 5.text | 6.date | 7.definition 1. id do post, é o que a cada novo item inserido aumenta um 2. id do fórum que foi criado 3. id do tópico que é um número aleatório, se for uma resposta, o id é do tópico em que foi criado 4. título 5. texto 6. data no formato: dd/mm/aaaa 7. definição: 1 para tópico 2 para resposta Existem outros campos definidos como status e level_topic aí pergunto, eles são utilizados da mesma forma tanto para tópicos quanto para respostas? E mais, o title quando é tópico refere-se ao nome do tópico, certo? E quando é resposta, o title contém algum valor?
  13. O que acontece é que deste jeito a pesquisa retorna as tabelas concatenadas mesmo e ainda duplica resultados. Se as tabelas que estão sendo lidas tiverem 2 linhas ele vai gerar uma saída com 2^(número de tabelas) seria como por exemplo usando 2 tabelas com 2 linhas de dados cada uma: linha1.col1.tab1 linha1.col2.tab1 linha1.col1.tab2 linha1.col2.tab2 linha1.col1.tab1 linha1.col2.tab1 linha2.col1.tab2 linha2.col2.tab2 linha2.col1.tab1 linha2.col2.tab1 linha1.col1.tab2 linha1.col2.tab2 linha2.col1.tab1 linha2.col2.tab1 linha2.col1.tab2 linha2.col2.tab2 Vendo a estrutura do seu BD, há correlações diretas e indiretas entre as tabelas. A tabela "bastidor", por exemplo, se correlaciona diretamente com a tabela "posicao" através do campo "idposicao", e se correlaciona indiretamente com a tabela "local" pois as tabelas "bastidor" e "local" não em campos em comum, porém ambas têm campo em comum com a tabela "posicao". Então, para obter uma saída do jeito que você quer, terá que observar todas essas correlações na hora de fazer a busca, senão ocorrerá o problema de duplicações indesejadas. Para uma busca por essas 3 tabelas, por exemplo, para evitar as duplicações teria que fazer o seguinte: $sql = "SELECT b.*,p.*,l.* FROM bastidor b,posicao p,local l WHERE b.idposicao=p.idposicao AND p.idlocal=l.idlocal ORDER BY b.idbastidor ASC"; Não tenho certeza pois nunca precisei usar busca em multiplas tabelas, no máximo em duas, mas é possível que a função JOIN do mysql (a qual coloquei o link da definição dela no manual) ajude a fazer isso mais facilmente, senão, você terá que ajustar todas as correlações a fim de ligar todas as tabelas usando a lógica do exemplo de "select" acima.
  14. svjets

    forçar download

    Isto, este exemplo força abrir a caixa de diálogo para indicar o local para onde o arquivo será carregado.
  15. svjets

    Listar resultados

    $sql=mysql_query("SELECT * FROM noticia WHERE categoria LIKE '%ESPORTE%'");
  16. Seu problema é de algorítmo não de linguagem, rs. Basta somar os valores de cada vendedor, não há mistério. Cria uma variável "$total", zera ela antes do início do looping de leitura. Vai incrementando nela o valor de cada vendedor e no final, antes de escrever "2ª PARTE" e "3ª PARTE" porém dentro do if, escreva o total e logo após zere a variável.
  17. Copie para cá a linha 511 do arquivo httpdocs\include\function\common.php e talvez possamos te ajudar. A princípio tem um fecha parenteses em lugar errado.
  18. Na verdade, seis casas decimais é a quantidade padrão de um printf em que não se especifica o número de casas decimais desejada. Internamente na memória a precisão do double é maior que a do float e de ambas é maior que seis casas decimais (7 casas decimais para float e 16 para double, e ainda 18 para long double), tente escrever o seguinte no printf: float f; double d; f = 0.12345678901234567890; d = 0.12345678901234567890; printf("f = %.7f %.16lf\n\n", f, f); printf("d = %.7f %.16lf\n\n", d, d);
  19. Desculpe, pensei que "bastidor,posicao,local,funcao,cabo,equipamento,responsavel" fossem campos de uma única tabela. Considerando que sejam todas tabelas, só tem sentido você realizar a busca no BD de variás tabelas ao mesmo tempo se houver uma correlação entre elas. Digamos que haja um id comum que correlaciona cada uma das tabelas, aí você deveria fazer a busca usando "join" (http://dev.mysql.com/doc/refman/4.1/pt/join.html) e a sintaxe vai depender do tipo de comparação e o tipo de resultados que deseja que saia. Do jeito que você está fazendo a busta os resultados serão totalmente desconexos. O erro que teu código apresenta é aqui: $linha = mysql_fetch_array($resultado); while ($linha) { Substitua o trecho acima por: while ($linha = mysql_fetch_array($resultado)) {
  20. Troque a linha por isso: <td><? echo "<a href=\"visualizar_dados_pessoais.php?id=".$linha['id']."\">".$linha['nome']."</a>"; ?></td>
  21. Isso está errado: $sql = "SELECT * FROM bastidor,posicao,local,funcao,cabo,equipamento,responsavel ORDER BY idbastidor ASC"; a lógica correta é: $sql="SELECT campo1,campo2,campo3 (ou * para todos os campos) FROM tabela ORDER BY campoX ASC";
  22. Seria mais ou menos assim: Na hora do processamento da compra você deve buscar no bd o crédito do cliente e verificar se o crédito é suficiente para pagar o produto. Se sim, retorna valor do produto igual a zero e continua a operação. No momento de finalizar a compra, desconta o valor do produto do crédito do cliente. Se o crédito não for suficiente para pagar o produto, retorna o valor do produto menos o crédito como valor a pagar. Ao finalizar a compra, zera o crédito do cliente. É tudo condicional, tem como por opção de utilizar ou não os créditos, pode relacionar apenas um tipo de produto para o uso do crédito, pode restringir o custo do envio para ser ou não pago com o crédito. Claro que apenas criar os dois campos no bd não resolverá nada, rs.
  23. Após a linha: $Result1 = mysql_query($insertSQL, $path) or die(mysql_error()); Insira: if($Result1) { echo "<script type='text/javascript'>alert('Formulário inserido com sucesso!!!');</script>"; }
×
×
  • Criar Novo...