tigu17 Posted November 27, 2010 at 03:56 PM Report #356475 Posted November 27, 2010 at 03:56 PM Boa tarde! Eu tenho que fazer um projecto em que consiste fazer um site para compras online. Eu tenho a tabela encomenda e a tabela linha de encomenda. A tabela linha encomenda contem: numEncomenda, codProduto e quantidade; A tabela encomenda contem: numEncomenda, numCliente, dataEncomenda , tipoEncomenda, estadoEncomenda ,dataInicioEntrega dataFimEntrega e codRecorrencia: Ou seja, a linha de encomenda serve apenas para colocar os produtos e as quantidades referente a uma encomendas. Mas o problemas é que não consigo inserir o codproduto nem a quantidade na tabela linha de encomenda. EU julgo que seja por caso das chaves estrangeiras. if($_GET['botao'] == 'finalizar_encomendas'){ $codProduto = $_GET['codProduto']; $quantidade = $_GET['quantidade']; $numEncomenda = $_GET['numEncomenda']; if(isset($_SESSION['lista'][$codProduto])){ $query = " INSERT INTO linhaencomenda (numEncomenda, codProduto, quantidade ". " VALUES ('$numEncomenda', '$codProduto','$quantidade')"; mysql_query($query) or die('Erro ao ligar à Base de Dados'); echo "O produto '$codProduto' foi adicionado com sucesso na sua linha de encomenda"; } } Obrigado
IceBrain Posted November 27, 2010 at 04:11 PM Report #356477 Posted November 27, 2010 at 04:11 PM Primeiro, devias ler isto: http://www.portugal-a-programar.pt/index.php?showtopic=16541 Depois, falta-te um ) na query: if($_GET['botao'] == 'finalizar_encomendas') { $codProduto = mysql_real_escape_string($_GET['codProduto']); $quantidade = mysql_real_escape_string($_GET['quantidade']); $numEncomenda = mysql_real_escape_string($_GET['numEncomenda']); if(isset($_SESSION['lista'][$codProduto])) { $query = "INSERT INTO linhaencomenda (numEncomenda, codProduto, quantidade) VALUES ('$numEncomenda', '$codProduto','$quantidade')"; mysql_query($query) or die('Erro ao ligar à Base de Dados'); echo "O produto '$codProduto' foi adicionado com sucesso na sua linha de encomenda"; } } ❝The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.❞- John Carmack on software patents A list of command line apps
tigu17 Posted November 27, 2010 at 05:00 PM Author Report #356482 Posted November 27, 2010 at 05:00 PM Obrigado! 😄 É que estou a utilizar o notepad ++ e não me apercebi que o erro deu se a este tipo de erros. 😄 E pelo que apercebi o meu codigo tem muito risco de vulnerabilidade, vou ter que tratar disso, obrigado por chamar me atenção desse risco. Agora surgiu me uma nova duvida. Porque eu criei um carrinho de compras com session. e eu ja bati varias vezes com a cabeça na parede e não arranjei uma solução eficiente. Pois o codigo em cima serve para inserir 1 tipo de produto e quantidade na linha de encomenda manualmente, ou seja um a um será que existe uma outra forma de inserir varios produtos e varias quantidades automaticamente, ou seja, apenas com um clique adicionar tudo. <?php if(count($_SESSION['lista']) == 0){ echo '<tr><td>Não há produtos na sua lista</td></tr>'; }else{ require("../ligacao.php"); $total = 0; foreach($_SESSION['lista'] as $codProduto => $quantidade){ $sql = "SELECT * FROM produto WHERE codProduto= '$codProduto'"; $qr = mysql_query($sql) or die(mysql_error()); $dados = mysql_fetch_assoc($qr); $nome = $dados['designacao']; $preco = $dados['preco']; $sub = $dados['preco']; $total += $dados['preco'] * $quantidade; echo '<tr> <td>'.$nome.'</td> <td><input type="text" size="3" name="produto['.$codProduto.']" value="'.$quantidade.'" /></td> <td>'.$preco.' €</td> <td>'.$sub.' €</td> <td><a href="?botao=eliminar&codProduto='.$codProduto.'"> Eliminar</a></td> <td><a href="?botao=finalizar_encomenda&codProduto='.$codProduto.'&quantidade='.$quantidade.'&numEncomenda='.$numEncomenda.'">Finalizar</a></td> </tr>'; } echo '<tr> <td colspan="4">Total</td> <td>'.$total.' €</td> </tr>'; } ?> Mais uma vez obrigado. Eu so recorri ao forum em ultimo recurso pois para esclarecer duvidas após varias pesquisas, não para me fazrem o codigo 😄
brunoais Posted November 27, 2010 at 07:57 PM Report #356499 Posted November 27, 2010 at 07:57 PM Usa a função: http://www.php.net/manual/en/function.session-set-save-handler.php para tomar conta dos cookies juntamente com as sessions. Grava as sessions na DB (pode ser uma tabela MEMORY) e assim não envias info dessas para o utilizador que pode ser mau. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now