Jump to content


kohler's Content

There have been 7 items by kohler (Search limited from 19/04/2023)


Ordernar por                Order  

#881622 Orçamento On-line (via Web)

Posted by kohler on 12/11/2007, 15:42 in PHP

Caros amigos do fórum,

Estou com em um beco sem saída, trabalhando a semanas encima de um sistema de orçamento on-line via web para um cliente, mas não estou conseguindo entregar o projeto no prazo prometido, por isso venho aqui pedir humildemente à ajuda dos colegas e profissionais na área.

Como vocês podem ver pela imagem em anexo abaixo, a estrutura web se compõe da seguinte maneira:

Nome do computador (cadastrado na tabela "micros")
Descrição do computador (também cadastrado na tabela "micros")
Foto (também cadastrado na tabela "micros")


e, é claro o padrão "cod_micro" (auto_increment) para gerar uma nova id à cada computador novo cadastrado.

Após o cadastro do computador, temos as seguintes opções de cotação para orçamento:

- Valor (Valor TOTAL da soma das peças padrões que compõe o micro, peças padrões são as primeiras selecionadas/marcadas em cada categoria).

Categorias distintas onde dentro de cada categoria há os produtos e valor de cada produto daquela categoria.

Para isto, tenho uma segunda tabela, chamada: "produtos_site" com os seguintes campos:

- id (auto_increment) - código automáticamente gerado a cada produto cadastrado
- cod_micro - código do computador que aquelas peças pertencem
- produto - nome do produto, ex: HD Samsung 250GB Sata2 7200RPM
- valor - valor do produto
- primeiro - se o produto será o primeiro da categoria a qual ele pertence, no caso, se ele será o padrão utilizado no orçamento
- categoria - categoria a qual o produto pertence (EX: PROCESSADORES, MEMÓRIAS, etc..)


Estou utilizando ajax pra gerar o valor a cada produto clicado, com o cálculo de:

VALOR TOTAL DO COMPUTADOR ( - ) O VALOR DO PRIMEIRO PRODUTO DA CATEGORIA ( + ) O VALOR DO PRODUTO CLICADO

Consigo calcular a soma, porém somente para uma categoria, ele não guarda/armazena/grava das outras categorias, somente 1 categoria fica gravado/somado.

O código utilizado para gerar o valor é o seguinte:

<?include("setup.php");$id         =  $_GET['id'];         // Pega o código do produto clicado$categoria  =  $_GET['categoria'];  // Pega a categoria do produto clicado$cod_micro  =  $_GET['cod_micro'];  // Pega o código do computador#procedimentos#1. somar o valor total do computador pegando apenas o primeiro de cada categoria$pega_total_primeiro   =  mysql_query("SELECT SUM(valor) as total FROM produtos_site WHERE cod_micro = '$cod_micro' AND primeiro = '1'",$conexao) or die(mysql_error());$row1                  =  mysql_fetch_array($pega_total_primeiro);$valor_total_primeiro  =  $row1['total'];#2. se o id e a categoria estiverem preenchidos:if($id !== "" AND $categoria !== "") { #Valor do clicado$pega_valor_clicado    =  mysql_query("SELECT valor FROM produtos_site WHERE id = '$id'",$conexao) or die(mysql_error());$row2                  =  mysql_fetch_array($pega_valor_clicado);$valor_clicado         =  $row2['valor'];#valor do primeiro$pega_valor_primeiro   =  mysql_query("SELECT valor FROM produtos_site WHERE cod_micro = '$cod_micro' AND categoria = '$categoria' AND primeiro = '1'",$conexao) or die(mysql_error());$row3                  =  mysql_fetch_array($pega_valor_primeiro);$valor_categoria       =  $row3['valor'];} #declaração de variáveis$valor_total_micro     =  $row1['total'];$valor_clicado         =  $row2['valor'];$_SESSION['valor']     =  $valor_clicado;$valor_categoria       =  $row3['valor'];if($id !== "" AND $categoria !== "") {$valor_final = $valor_total_micro-$valor_categoria+$valor_clicado;$valor_final = number_format($valor_final, 2, ',', '.');} else { $valor_final = $valor_total_micro;$valor_final = number_format($valor_final, 2, ',', '.');}echo $valor_final;?>

O código para gerar a página de categorias e produtos é:

<?$cod_micro = $_GET['cod_micro'];$pega_categorias = mysql_query("SELECT * FROM produtos_site WHERE site = '1' AND cod_micro = '$cod_micro' group by categoria",$conexao) or die(mysql_error());while($line = mysql_fetch_array($pega_categorias)) { ?>                            <form action="" method="post" name="orcamento" id="orcamento">                              <table width="100%" border="0" cellspacing="0" cellpadding="1">                                <tr>                                  <td colspan="2" bgcolor="#F8F8F8" class="style4 style5">&nbsp;&nbsp;<? echo $line['categoria']; ?></td>                                </tr><?$cod_micro = $_GET['cod_micro'];$pega_produtos = mysql_query("SELECT * FROM produtos_site WHERE site = '1' AND categoria = '$line[categoria]' AND cod_micro = '$cod_micro' order by primeiro desc",$conexao) or die(mysql_error());while($row = mysql_fetch_array($pega_produtos)) {$valor_primeiro = mysql_query("SELECT * FROM produtos_site WHERE primeiro = '1' AND cod_micro = '$row[cod_micro]' AND categoria = '$row[categoria]'",$conexao) or die(mysql_error());$line           = mysql_fetch_array($valor_primeiro);$valor_primeiro = $line['valor'];	?>                                <tr><td width="67%"><input name="id" id="id" type="radio" value="<? echo $row['id']; ?>" onClick="getvalor('<? echo $row['id']; ?>','<? echo $row['categoria']; ?>','<? echo $row['cod_micro']; ?>')" <? if($row['primeiro'] == 1) { echo "checked"; } ?> /><font color="#333333" size="1" face="Tahoma, Arial, sans-serif"><? echo $row['produto']; ?></font></td>                                  <td width="33%"><div align="left"><strong><font color="#333333" size="1" face="Tahoma, Arial, sans-serif"><? $valor = $row['valor']-$valor_primeiro; if($row['primeiro'] != 1 AND $valor != 0) {						?>(+ R$ <? echo $valor ?>.00)<? } else { ?>(<? echo $row['valor']; ?>)<? } ?>                                  </font></strong></div></td>                                </tr>                                <? } ?>                              </table>                            </form>                          <? echo "\n<br>"; } ?>

Se quiserem testar, disponibilizo este link para entenderem melhor o meu problema:

http://www.bjnet.com...hp?cod_micro=12

Se vocês tiverem idéia sobre como posso resolver este problema ficaria muitíssimo grato.

Desde já agradeço a atenção de todos! :)

Attached Thumbnails

  • orcamento_online.jpg



#866507 Sistema Tipo Agenda/despertador, Sql

Posted by kohler on 20/08/2007, 09:32 in MySQL

Bom dia pessoal.

Estou fazendo um site para uma Rádio onde os locotures serão dinâmicos e só apareceram na pg. inicial (Agora no AR: Fulano) quando o horário for o intervalo de horário cadastrado pra ele para determinados dias da semana.. até aí tudo bem, pois fiz assim:

- hora_inicial (hora que ele entra ao ar, ex: 15:30:00)
- hora_final (hora que ele saí do ar, ex: 16:30:00)
- dia_semana (dia da semana, ex: Segunda,terça, etc..)

pois bem, a lógica utilizada via SQL é a seguinte:

SELECT
a.cod_locutor,
a.nome,
a.foto,
b.cod_locutor,
b.programa,
b.cod_programa,
c.cod_grade,
c.cod_programa,
c.cod_locutor,
c.semana,
c.hora_inicio,
c.hora_fim
FROM programas as b
INNER JOIN locutores as a ON b.cod_locutor = b.cod_locutor
INNER JOIN grade as c ON a.cod_locutor = c.cod_locutor
WHERE b.cod_programa = c.cod_programa AND c.hora_inicio <= '$hora_atual' AND c.hora_fim >= '$hora_atual' AND semana = '$semana_atual'

Está funcionando, porém tenho um esquema parecido para fazer, só que com notícias, para notícia só entrar ao ar apartir de uma determinada data e sair em outra data, bem como horário, utilizando os campos:

- data_inicial (Data em que a notícia poderá aparecer)
- data_final (Data em que ela expira, ou seja, deixa de aparecer)
- hora_inicial (Horário em que ela deve entrar ao ar)
- hora_final (Horário em que ela deve sair do ar)

Campos de datas estão como DATE() e de hora como TIME();

Tentei utilizar a mesma lógica utilizada acima com os locutores, mas não funcionou, vejam:

$hora_atual = date("H:i") . ":" . "00";
$data_atual = date("Y-m-d");

$pega_noticia = mysql_query("SELECT
a.cod_noticia,
a.cod_editorial,
a.titulo,
a.conteudo,
a.icone,
a.hora_inicio,
a.hora_fim,
a.data_inicio,
a.data_fim,
DATE_FORMAT(a.data,'%d/%m/%Y') as data,
DATE_FORMAT(a.hora,'%H:%i') as hora,
b.cod_editorial,
b.editorial,
c.cod_noticia,
c.arquivo,
c.cod_foto,
d.cod_noticia,
d.tipo,
d.local
FROM noticias as a
LEFT JOIN editoriais as b ON a.cod_editorial=b.cod_editorial
LEFT JOIN fotos as c ON a.cod_noticia=c.cod_noticia
LEFT JOIN criterios as d ON a.cod_noticia=d.cod_noticia
WHERE d.local='pg_inicial2' AND d.tipo = 'noticia'
AND a.hora_inicio <= '$hora_atual'
AND a.hora_fim >= '$hora_atual'
AND a.data_inicio <= '$data_atual'
AND a.data_fim >= '$data_atual'
ORDER by a.cod_noticia DESC LIMIT 1",$conexao) or die(mysql_error());

Não dá erro, apenas a notícia não aparece, se eu utilizar apenas com um sistema de horário (para todos os dias), funciona, porém, com a data, não :(

Se alguém poder me ajudar, ficaria muito grato! (y)

Attached Thumbnails

  • sqlnot.gif



#842149 Ano De Veículo

Posted by kohler on 17/04/2007, 11:05 in MySQL

Olá.

Tenho uma tabela com cadastros de automóveis ... onde na tabela há um campo chamado 'ano' e há veículos cadastrados desde o ano 1970 até 2008, porém há veiculos cadastrados com o ano 0 (ZERO KM)...

Em uma consulta SQL na hora de ordenar, o 0 sempre fica por último (obviamente por ser menor que 2008), porém na hora de fazer o select e ordernar, como eu faço pra declarar os veículos que estão cadastrados como 0km, como se fossem maior que 2008?

Isso apenas no SELECT.

Tipo, dizer que o ano 0 é maior que 2008.

Alguém tem alguma idéia?

Obrigado :lol:



#839109 Dúvida Com Iframe + Php

Posted by kohler on 03/04/2007, 17:49 in PHP

Salve pessoal.. !! Gostaria da ajuda de vocês para uma dúvida.

Tenho um portal de automóveis e nele, acima do menu esquerdo, há um iframe conténdo um formulário para fazer busca de um determinado veículo.

Mas como estes dados estão em um iframe e o action do formulário está para um arquivo externo... assim:

<form action="resultado_busca.php" method="get" name="busca_centro" target="_parent" id="busca_centro" onSubmit="java script: return valida_busca();">

Ele não recupera os dados que foram selecionados, pois é dado um reload na página apartir do momento em que a busca (o formulário com os combos) é submetido.

Como eu estou usando um iframe, não sei como recuperar estes valores.. (através do $_GET) algém tem uma luz?

Agradeço desde já



#838099 Tipo De Campo (valor Monetário)

Posted by kohler on 30/03/2007, 11:43 in MySQL

Olá.. tenho uma tabela de produtos com cadastros de produtos onde cada produto possui seu respectivo preço/valor.

Estou usando o campo como: decimal(5,3) porém, ele só aceita e insere valores com mais de 3 casas, ou seja, acima de mil reais.

Estavamos usando assim durante 1 ano e agora surgiram produtos com valor inferior a 1000 reais.

Agora mesmo que nós insiramos .. por exemplo, 900 reais.. ele adiciona 3 casos no final.

Ex: 900 reais = 900.000

Que tipo de campo posso usar no banco para que ele aceite qualquer tipo de valor monetário, independente se for acima de mil reais ou menos que mil.


Valeu :boxing:



#805299 Sintaxe De Busca Utilizando Like [ Palavras Não Sequenciais ]

Posted by kohler on 08/12/2006, 15:53 in MySQL

Olha eu conselho voce fazer uma tabela de modelos onde voce cadastrasse somente uam vem o tipo de carro, ou ainda melhor, uam tabela de modelos de carro (Gol, Palio, ...) e outra de tipos (1.6 16V. 1.4 Weekend...)

desse modo voce não precisará escrever sempre o tipo do vaículo, escreveria uam vem, e nos próximos cadastros é só voce referenciar pela chave primária das tabelas, criando JOINS


Olá amigo.

Sua idéia é interessante, mas infelizmente no momento não podemos fazer isso por outros motivos..

Por isso precisava de uma solução no SELECT mesmo.



#805232 Sintaxe De Busca Utilizando Like [ Palavras Não Sequenciais ]

Posted by kohler on 08/12/2006, 12:57 in MySQL

Boa tarde amigos. :)

Estou com uma dúvida.


Vou pegar como exemplo, um portal de automóveis, onde eu utilize um campo onde os visitantes façam a busca de um determinado veículo, utilizando por "trás dos panos" o LIKE do MySQL..

EX:

SELECT * FROM veiculos WHERE veiculo LIKE '%$veiculo%'

Porém, digamos que tenham veículos do mesmo modelo, mas com cadastros diferentes.

Ex:

1. Corsa 1.0 Wagon e Corsa Wagon 1.0

Notem que são o MESMO veículo (modelo) mas há 2 cadastros diferentes.

Se eu buscar por Corsa 1.0 ele vai me trazer o primeiro e o segundo não, pois o LIKE considera a sequência de strings ...

Então o que eu gostaria, quando eu digitasse corsa 1.0 aparecesse também o Corsa Wagon 1.0 .. mesmo que o 1.0 esteja como ultima string.

Entenderam ?

É que tem garagens (revendas) que cadastram o veículo de várias formas, tipo a sequência diferente...

Gol CL 1.8 .... Gol 1.8 CL .. daí quando vai buscar, não mostra todos porque o LIKE só considera a sequencia.

Desculpem mas acho que não estou conseguindo me expressar direito.. se alguém não entendeu, dá um toc que tento expliacar melhor :unsure:




IPB Skin By Virteq