e-junior 0 Denunciar post Postado Maio 2, 2007 Olá pessoal tudo bom???Bom preciso de um help, tenho uma tabela "PRODUTOS" q tem um campo "validade_link" q é definido por dias e uma tabela "PEDIDOS" q armazena as datas dos pedidos efetuados q tem um campo "dt_pedido".É o seguinte preciso calcular quantos dias faltam para a validade do link apartir da data do pedido q é o campo "dt_pedido" na tabela pedido.TIPO DE CAMPOS NA TABELA:#####TABELA PRODUTOS#####campo: validade_link CHAR(3)Exemplo: 90 diasExemplo: 30 dias#####TABELA PEDIDOS#####campo: dt_pedido DATEExemplo: 2007-05-02 Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Maio 2, 2007 Não entendi muito bem o relacionamento que está sendo feito, mas pode fazer algo como: SELECT DATEDIFF(dt_pedido + INTERVAL validade_link DAY, NOW()) AS prazo_dias FROM tabela; A consulta acima retorna o campo prazo_dias, levando em consideração que não fiz o relacionamento entre as tabelas. Tente adaptar, qualquer coisa, posta aí ;) []s Anderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
_vina 0 Denunciar post Postado Maio 2, 2007 veja eu tenho essa função aki que ela faz os calculos de tempo para mim function DataDif($Data1, $Data2, $Intervalo){switch($Intervalo){case 'n' : $Q = 60; break; //minutocase 'h' : $Q = 3600; break; //horacase 'd' : $Q = 86400; break; //diacase 'm' : $Q = 2592000; break; //mescase 'a' : $Q = 86400*365; break; //anodefault : $Q = 1; break; //segundo}return intval ((strtotime($Data2) - strtotime($Data1)) / $Q);} modo de usar $resultado = DataDif($datadehoje,$datadocadastro,d); ae é so você comparar se o resultado for igual o numero de dias que tem q enviar o link ele manda senão continua espero ter ajudado abs []s http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
e-junior 0 Denunciar post Postado Maio 2, 2007 bom valeu Anderson mas nao estou conseguindo fazer o relacionamento pq desse jeito q você esta colocando ai mostra o prazo para todos os produtos cadastrados.Como você disse q nao entendeu relacionamento que está sendo feito vou lhe explicar minha estrutura:#####TABELA PRODUTOS#####id_produtonome_produtovalidade_linklink_video#####TABELA PEDIDOSid_pedidoid_clientedt_pedidostatus_pedidovalor_pedido#####TABELA ITEM#####id_itemid_pedidoid_produtoquantidadeObs.: Bom e o seguinte se você ver na tabela PRODUTO tem um campo "validade_link" q é colocado o prazo em dias que o link do video ficara disponivel para o cliente após a sua compra o que eu quero fazer e o seguinte calcular quantos dias o cliente tem para ver o filme apartir da data de sua compra "dt_pedido". Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Maio 2, 2007 Entendi o que você precisa retornar, mas ainda não entendi como quer :huh: Pelo que vi ali na estrutura, você pode então consultar a tabela de pedidos e resgatar os itens do pedido e seus respectivos prazos (em dias). É isso?Mesmo que não seja estas as informações, tenta fazer um SELECT normal, recuperando os dados que precisa. Depois altera a seleção do campo validade_link, adaptando a instrução que passei antes, que retorna o valor do prazo.Vai postando que te ajudo. ;)[]sAnderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
e-junior 0 Denunciar post Postado Maio 2, 2007 Anderson e assim preciso fazer um select igual na imagem se a validade do link passou a data do pedido ele nao exibe o link do video e mostra NAO DISPONIVEL. LINK IMAGEM Compartilhar este post Link para o post Compartilhar em outros sites
e-junior 0 Denunciar post Postado Maio 2, 2007 Anderson, Acho q deu certo olha o select ai: SELECT tb_palestra.id_palestra, tb_item.id_pedido, tb_palestra.tema, tb_pedido.dt_pedido, tb_palestra.validade_link, tb_palestra.link_video, DATEDIFF(dt_pedido + INTERVAL validade_link DAY, NOW()) AS prazo_validade_link FROM tb_item INNER JOIN tb_palestra ON tb_item.id_produto = tb_palestra.id_palestra INNER JOIN tb_pedido ON tb_item.id_pedido = tb_pedido.id_pedido WHERE tb_item.id_pedido='1' IMAGEM DO SELECT: Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Maio 2, 2007 SELECT produtos.*, DATEDIFF(pedidos.dt_pedido + INTERVAL produtos.validade_link DAY, NOW()) AS prazo_dias FROM item, produtos, pedidos WHERE item.id_pedido=pedidos.id_pedido AND item.id_produto=produtos.id_produto; Não testei, mas faz aí e confere os nomes das tabelas ;) Assim você retorna os dados da tabela produtos e o campo prazo_dias. Aí tu coloca uma condição, se for maior que zero, imprime o link, senão imprime a mensagem "não disponível". []s Anderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
e-junior 0 Denunciar post Postado Maio 2, 2007 beleza Anderson testei e funcionou normal. Só pra deixar documentando caso outra pessoa no forum precise vou colocar o código: ha caso tenha alguma observação no código abaixo pode falar. t+++ obrigado pela ajuda. <?php $sql_pedido02 = "SELECT tb_palestra.id_palestra,tb_item.id_pedido,tb_palestra.tema,tb_pedido.dt_pedido,tb_palestra.validade_link,tb_palestra.link_video,DATEDIFF(dt_pedido + INTERVAL validade_link DAY, NOW()) AS prazo_validade_linkFROM tb_itemINNER JOIN tb_palestraON tb_item.id_produto = tb_palestra.id_palestraINNER JOIN tb_pedidoON tb_item.id_pedido = tb_pedido.id_pedidoWHERE tb_item.id_pedido='$id'"; $pedido_mostra02 = mysql_query($sql_pedido02)or die ("Não foi possível realizar a consulta ao banco de dados");?><?php while ($row02=mysql_fetch_array($pedido_mostra02)){ $id_palestra= $row02["id_palestra"];$id_pedido= $row02["id_pedido"];$dt_pedido= $row02["dt_pedido"];$tema= $row02["tema"];$validade_link= $row02["validade_link"];$prazo_validade_link= $row02["prazo_validade_link"];$link_video= $row02["link_video"]; $clique_aqui = "Clique aqui"; if ($prazo_validade_link == "0"){$link_video = "#";$prazo_validade_link = "<font class='FONT07'><b>$prazo_validade_link</b></font>";$clique_aqui = "DESATIVADO";} ?><tr><td align="left"><?php echo $tema; ?></td><td align="center"><a title="<?php echo $tema; ?>" href="<?php echo $link_video; ?>" target="_blank" class="STYLE06"><?php echo $clique_aqui; ?></a></td><td align="center"><?php echo $prazo_validade_link; ?></td></tr><?php }?> <tr> Compartilhar este post Link para o post Compartilhar em outros sites