leoaguiar 0 Denunciar post Postado Agosto 4, 2005 achei um script de carrinho de compras no site da macromedia http://www.macromedia.com/devnet/mx/dreamw...s/php_cart.html ele possui uma pagna onde mostra os produtos, e a outra que é a página do carrinho. Gostaria de colocar uma pagina de detalhes do produto, ficaria da saguinte forma: entraria na pagina de produtos, clicaria no produto, iria para a págian de detalhes deste produto e ai sim teria a opção de colocar no carrinho ou voltar pra loja. Ja´to tentando fazer isso um tempão mas não consigo acertar a pagina de detalhes, gostaria da ajudade vcs, pois estou começando a estudar PHP agora! segue abaixo o codigo das paginas. PRODUTOS.PHP (mostra os produtos do banco de dados) <?php // This page will list all of the items // from the items table. Each item will have // a link to add it to the cart include("db.php"); // Get a connection to the database $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName); $result = mysql_query("select * from items order by itemName asc"); ?> <html> <head> <title>Produtos</title> </head> <body bgcolor="#ffffff"> <h1>Produtos </h1> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td height="25" colspan="3" bgcolor="red"> <font face="verdana" size="1" color="white"> </font> <font face="verdana" size="1" color="white"> <b>roduto </b></font> </td> </tr> <?php while($row = mysql_fetch_array($result)) { ?> <tr> <td width="33%" height="4"> <form name="form1" method="post" action=""> <input name="imageField" type="image" src="<?php echo $row["itemImg"]; ?>" width="153" height="193" border="0"> </form> <font face="verdana" size="1" color="black"> </font> </td> <td width="62%" height="25"> <font face="verdana" size="1" color="black"> </font> </td> <td width="5%" height="25" rowspan="4"> <font face="verdana" size="1" color="black"> </font> <font face="verdana" size="1" color="black"> </font> </td> </tr> <tr> <td width="33%" height="6"><font face="verdana" size="1" color="black"><a href="detailsproduct.php?itemId=<?php echo $row["itemId"]; ?>"><?php echo $row["itemName"]; ?></a></font></td> <td height="6"> </td> </tr> <tr> <td width="33%" height="3"><font face="verdana" size="1" color="black"><?php echo $row["itemDesc"]; ?></font></td> <td height="3"> </td> </tr> <tr> <td width="33%" height="12" valign="top"><font face="verdana" size="1" color="black">R$ <?php echo $row["itemPrice"]; ?></font></td> <td valign="bottom"><font face="verdana" size="1" color="black"> </font></td> </tr> <tr> <td colspan="3"> <hr size="1" color="red" NOSHADE> </td> </tr> <?php } ?> <tr> <td colspan="3"> <font face="verdana" size="1" color="black"> <a href="cart.php">ver meu carrinho >></a> </font> </td> </tr> </table> </body> </html> DETALHES DO PRODUTO (o problema é que ela mostra todos os produtos do banco de dados de novo, tentei modificar a instrução sql, mas não consegui, sei que ele tem q pegar o id que eu passo no link da primeira pagina , mas não sei como. <?php // This page will list all of the items // from the items table. Each item will have // a link to add it to the cart include("db.php"); // Get a connection to the database $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName); $result = mysql_query("select * from items order by itemName asc"); ?> <html> <head> <title>Produtos</title> </head> <body bgcolor="#ffffff"> <h1>Produtos </h1> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td height="25" colspan="3" bgcolor="red"> <font face="verdana" size="1" color="white"> </font> <font face="verdana" size="1" color="white"> <b>roduto </b></font> </td> </tr> <?php while($row = mysql_fetch_array($result)) { ?> <tr> <td width="33%" height="4"> <form name="form1" method="post" action=""> <input name="imageField" type="image" src="<?php echo $row["itemImg"]; ?>" width="153" height="193" border="0"> </form> <font face="verdana" size="1" color="black"> </font> </td> <td width="62%" height="25"> <font face="verdana" size="1" color="black"> </font> </td> <td width="5%" height="25" rowspan="4"> <font face="verdana" size="1" color="black"> </font> <font face="verdana" size="1" color="black"> </font> </td> </tr> <tr> <td width="33%" height="6"><font face="verdana" size="1" color="black"><a href="detailsproduct.php?itemId=<?php echo $row["itemId"]; ?>"><?php echo $row["itemName"]; ?></a></font></td> <td height="6"> </td> </tr> <tr> <td width="33%" height="3"><font face="verdana" size="1" color="black"><?php echo $row["itemDesc"]; ?></font></td> <td height="3"> </td> </tr> <tr> <td width="33%" height="12" valign="top"><font face="verdana" size="1" color="black">R$ <?php echo $row["itemPrice"]; ?></font></td> <td valign="bottom"><font face="verdana" size="1" color="black"> </font></td> </tr> <tr> <td colspan="3"> <hr size="1" color="red" NOSHADE> </td> </tr> <?php } ?> <tr> <td colspan="3"> <font face="verdana" size="1" color="black"> <a href="cart.php">ver meu carrinho >></a> </font> </td> </tr> </table> </body> </html> PAGINA DO CARRINHO <?php include("db.php"); switch($_GET["action"]) { case "add_item": { AddItem($_GET["id"], $_GET["qty"]); ShowCart(); break; } case "update_item": { UpdateItem($_GET["id"], $_GET["qty"]); ShowCart(); break; } case "remove_item": { RemoveItem($_GET["id"]); ShowCart(); break; } default: { ShowCart(); } } function AddItem($itemId, $qty) { // Will check whether or not this item // already exists in the cart table. // If it does, the UpdateItem function // will be called instead global $dbServer, $dbUser, $dbPass, $dbName; // Get a connection to the database $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName); // Check if this item already exists in the users cart table $result = mysql_query("select count(*) from cart where cookieId = '" . GetCartId() . "' and itemId = $itemId"); $row = mysql_fetch_row($result); $numRows = $row[0]; if($numRows == 0) { // This item doesn't exist in the users cart, // we will add it with an insert query @mysql_query("insert into cart(cookieId, itemId, qty) values('" . GetCartId() . "', $itemId, $qty)"); } else { // This item already exists in the users cart, // we will update it instead UpdateItem($itemId, $qty); } } function UpdateItem($itemId, $qty) { // Updates the quantity of an item in the users cart. // If the qutnaity is zero, then RemoveItem will be // called instead global $dbServer, $dbUser, $dbPass, $dbName; // Get a connection to the database $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName); if($qty == 0) { // Remove the item from the users cart RemoveItem($itemId); } else { mysql_query("update cart set qty = $qty where cookieId = '" . GetCartId() . "' and itemId = $itemId"); } } function RemoveItem($itemId) { // Uses an SQL delete statement to remove an item from // the users cart global $dbServer, $dbUser, $dbPass, $dbName; // Get a connection to the database $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName); mysql_query("delete from cart where cookieId = '" . GetCartId() . "' and itemId = $itemId"); } function ShowCart() { // Gets each item from the cart table and display them in // a tabulated format, as well as a final total for the cart global $dbServer, $dbUser, $dbPass, $dbName; // Get a connection to the database $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName); $totalCost = 0; $result = mysql_query("select * from cart inner join items on cart.itemId = items.itemId where cart.cookieId = '" . GetCartId() . "' order by items.itemName asc"); ?> <html> <head> <title>Seu carrinho</title> <script language="JavaScript"> function UpdateQty(item) { itemId = item.name; newQty = item.options[item.selectedIndex].text; document.location.href = 'cart.php?action=update_item&id='+itemId+'&qty='+newQty; } </script> </head> <body bgcolor="#ffffff"> <h1>Seu carrinho </h1> <form name="frmCart" method="get"> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td width="15%" height="25" bgcolor="red"> <font face="verdana" size="1" color="white"> <b>Qtde</b> </font> </td> <td width="55%" height="25" bgcolor="red"> <font face="verdana" size="1" color="white"> <b>Produto</b></font> </td> <td width="20%" height="25" bgcolor="red"> <font face="verdana" size="1" color="white"> <b>Preço (unidade) </b> </font> </td> <td width="10%" height="25" bgcolor="red"> <font face="verdana" size="1" color="white"> <b>Remover?</b> </font> </td> </tr> <?php while($row = mysql_fetch_array($result)) { // Increment the total cost of all items $totalCost += ($row["qty"] * $row["itemPrice"]); ?> <tr> <td width="15%" height="25"> <font face="verdana" size="1" color="black"> <select name="<?php echo $row["itemId"]; ?>" onChange="UpdateQty(this)"> <?php for($i = 1; $i <= 20; $i++) { echo "<option "; if($row["qty"] == $i) { echo " SELECTED "; } echo ">" . $i . "</option>"; } ?> </select> </font> </td> <td width="55%" height="25"> <font face="verdana" size="1" color="black"> <?php echo $row["itemName"]; ?> </font> </td> <td width="20%" height="25"> <font face="verdana" size="1" color="black"> R$<?php echo number_format($row["itemPrice"], 2, ".", ","); ?> </font> </td> <td width="10%" height="25"> <font face="verdana" size="1" color="black"> <a href="cart.php?action=remove_item&id=<?php echo $row["itemId"]; ?>">Remove</a> </font> </td> </tr> <?php } // Display the total ?> <tr> <td width="100%" colspan="4"> <hr size="1" color="red" NOSHADE> </td> </tr> <tr> <td width="70%" colspan="2"> <font face="verdana" size="1" color="black"> <a href="products.php"><< Voltar para loja </a> </font> </td> <td width="30%" colspan="2"> <font face="verdana" size="2" color="black"> <b>Total: R$<?php echo number_format($totalCost, 2, ".", ","); ?></b> </font> </td> </tr> </table> </form> </body> </html> <?php } ?> * Só tem mais uma coisa qdo vou ver o carrinho sem comprar nenhum ítem da um erro, mas abre a pagina! Valeu galera conto com a ajuda de vcs!!! Compartilhar este post Link para o post Compartilhar em outros sites
red neck * 0 Denunciar post Postado Agosto 4, 2005 depende muito dos seus conhecimentos....na real, seria mais facil você fazer o seu porque modificar script pronto acaba sendo bem mais dificil =/se quiser um help tamos aqui XD[]'s Compartilhar este post Link para o post Compartilhar em outros sites
leoaguiar 0 Denunciar post Postado Agosto 4, 2005 depende muito dos seus conhecimentos.... na real, seria mais facil você fazer o seu porque modificar script pronto acaba sendo bem mais dificil =/ se quiser um help tamos aqui XD []'s <{POST_SNAPBACK}> Mas acho,.não tenho certeza. que seria mexer na instrução sql, fazer ela pegar o id que eu passo e não listar todos os produtos de novo! Compartilhar este post Link para o post Compartilhar em outros sites
red neck * 0 Denunciar post Postado Agosto 4, 2005 nao que seja complicado, mais como falei vai depender dos seus conhecimentos..no caso para "modificar" esse codigo, você teria que criar uma nova tabela com descricacao dos produtos.. mais isso teria que mudar tudo, por isso disse que seria mais facil fazer outro, olha so:você teria que mudar o form,a hora de exbira hora de adicionar e teria que entender como o cara fez para poder modificar...entao nao seria mais facil fazer outro? como disse, tamo junto ! qualque coisa so posta[]'s Compartilhar este post Link para o post Compartilhar em outros sites
leoaguiar 0 Denunciar post Postado Agosto 4, 2005 nao que seja complicado, mais como falei vai depender dos seus conhecimentos.. no caso para "modificar" esse codigo, você teria que criar uma nova tabela com descricacao dos produtos.. mais isso teria que mudar tudo, por isso disse que seria mais facil fazer outro, olha so: você teria que mudar o form, a hora de exbir a hora de adicionar e teria que entender como o cara fez para poder modificar... entao nao seria mais facil fazer outro? como disse, tamo junto ! qualque coisa so posta []'s <{POST_SNAPBACK}> eu ja fiz alguma coisa parecida mas como dreamwever, a coisaq to em duvida é como pegar o id que passo no link qunado clico no produto, o resto ta tudo funcionando legal> O que acontece é o seguinte: Na págian de detalhes ele lista todos os produtos do banco e não só o que eu cliquei, isso é por causa dainstrução sql que coloquei em negito e o while da pagina dedetalhes! Compartilhar este post Link para o post Compartilhar em outros sites
red neck * 0 Denunciar post Postado Agosto 4, 2005 por ex:pagina.php?var=imasterspara recuperar você usa$_GET["var"];e para selecionar apenas o produto é so fazer assim:SELECT * FROM produtos WHERE id=$_GET["id"]ve se te ajuda[]'s Compartilhar este post Link para o post Compartilhar em outros sites
leoaguiar 0 Denunciar post Postado Agosto 4, 2005 por ex: pagina.php?var=imasters para recuperar você usa $_GET["var"]; e para selecionar apenas o produto é so fazer assim: SELECT * FROM produtos WHERE id=$_GET["id"] ve se te ajuda []'s <{POST_SNAPBACK}> acho q agora entendeu o q eu estava falando! vou tentar e te falo! Compartilhar este post Link para o post Compartilhar em outros sites
leoaguiar 0 Denunciar post Postado Agosto 4, 2005 por ex: pagina.php?var=imasters para recuperar você usa $_GET["var"]; e para selecionar apenas o produto é so fazer assim: SELECT * FROM produtos WHERE id=$_GET["id"] ve se te ajuda []'s <{POST_SNAPBACK}> acho q agora entendeu o q eu estava falando! vou tentar e te falo! <{POST_SNAPBACK}> po coloquei e deu um erro (veja abaixo):Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\arquivos de programas\easyphp1-7\www\loja virtual0408\detailsproduct.php on line 10 a pagina ficou assim: <?php // This page will list all of the items // from the items table. Each item will have // a link to add it to the cart include("db.php"); // Get a connection to the database $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName); //$result = mysql_query("select * from items order by itemName asc"); $result = mysql_query("SELECT * FROM items WHERE itemId=$_GET["id"]"); ?> <html> <head> <title>Produtos</title> </head> <body bgcolor="#ffffff"> <h1>Detalhes do Produto </h1> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td height="25" colspan="3" bgcolor="red"> <font face="verdana" size="1" color="white"> </font> <font face="verdana" size="1" color="white"> <b>Detalhes do produto </b></font> </td> </tr> <?php while($row = mysql_fetch_array($result)) { ?> <tr> <td width="33%" height="25" rowspan="4"> <form name="form1" method="post" action=""> <input name="imageField" type="image" src="<?php echo $row["itemImg"]; ?>" width="153" height="193" border="0"> </form> <font face="verdana" size="1" color="black"> </font> </td> <td width="62%" height="25"> <font face="verdana" size="1" color="black"><?php echo $row["itemName"]; ?> </font> </td> <td width="5%" height="25" rowspan="4"> <font face="verdana" size="1" color="black"> </font> <font face="verdana" size="1" color="black"> </font> </td> </tr> <tr> <td height="6"><font face="verdana" size="1" color="black"><?php echo $row["itemDesc"]; ?></font></td> </tr> <tr> <td height="3"><font face="verdana" size="1" color="black">R$ <?php echo $row["itemPrice"]; ?></font></td> </tr> <tr> <td valign="bottom"><font face="verdana" size="1" color="black"><a href="cart.php?action=add_item&id=<?php echo $row["itemId"]; ?>&qty=1">Add Item</a> <img src="btn_sacola.jpg" width="142" height="64" border="0"></font></td> </tr> <tr> <td colspan="3"> <hr size="1" color="red" NOSHADE> </td> </tr> <?php } ?> <tr> <td colspan="3"> <font face="verdana" size="1" color="black"> <a href="cart.php">ver meu carrinho >></a> </font> </td> </tr> </table> </body> </html> A variavel que eu to passando é id. Ta tudo certo na pagina anterior , qdo eu coloco o mouse encima do produto ele me mostra: http://localhost/loja%20virtual0408/detailsproduct.php?id=5 Compartilhar este post Link para o post Compartilhar em outros sites
red neck * 0 Denunciar post Postado Agosto 4, 2005 tenta assim: $result = mysql_query("SELECT * FROM items WHERE itemId=" . $_GET["id"]); ahh outra coisa, procura postar os codigos em quote ou code XD fica mais organizado[]'s Compartilhar este post Link para o post Compartilhar em outros sites
leoaguiar 0 Denunciar post Postado Agosto 5, 2005 tenta assim: $result = mysql_query("SELECT * FROM items WHERE itemId=" . $_GET["id"]); ahh outra coisa, procura postar os codigos em quote ou code XD fica mais organizado []'s <{POST_SNAPBACK}> Deu certo, valeu mesmo cara! Te agradeço demais, demorei uns dois dias pra fazer isso!!! rssss... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/grin.gif eu achei esse carrinho bem prático por isso tava insistindo nele! Valeu! depois vou postar o codigo inteiro!!!! Compartilhar este post Link para o post Compartilhar em outros sites