Evandro Araujo Postado Julho 24, 2008 Denunciar Share Postado Julho 24, 2008 Codigo:<?phpsession_start();include("config.php");if (isset($_GET['acao'])) { if ($_GET['acao']== "add") { if (isset($_GET['id'])) { if (is_numeric($_GET['id'])) { $id_prod = addslashes(htmlentities($_GET['id'])); $sql_cont = "SELECT COUNT(*) AS n_prod FROM carrinho where id_produto=$id_prod' and sessao='".session_id()."'"; $exe_cont = mysql_query($sql_cont,$base) or die(mysql_error()); $reg_cont = mysql_fetch_array($exe_cont, MYSQL_ASSOC); if ($reg_cont['n_prod]==0) { $sql_prod = "SELECT * FROM produtos WHERE id_produto='$id_prod'"; $exe_prod = mysql_query($sql_prod,$base) or die(mysql_error()); $num_prod = mysql_num_rows($exe_prod); echo $num_prod; if ($num_prod > 0) { echo "teste"; $reg_prod = mysql_fetch_array($exe_prod, MYSQL_ASSOC); $sql_add = "INSERT INTO carrinho(id_produto, nome_produto, preco_produto, qtd_produto, sessao) VALUES ('".$reg_prod['id_produto']."', '".$reg_prod['nome_produto']."', '".$reg_prod['preco_produto']."',1,'".session_id()."')"; $exe_add = mysql_query($sql_add,$base) or die(mysql_error()); $reg_add = mysql_fetch_array($exe_add, MYSQL_ASSOC); } } } } } if ($_GET['acao']== "del") { if (isset($_GET['id'])) { if (is_numeric($_GET['id'])) { $id_prod = addslashes(htmlentities($_GET['id'])); $sql_del = "DELETE FROM carrinho WHERE id_produto=$id_prod' AND sessao='".session_id()."'"; $exe_del =mysql_query($sql_del,$base) or die(mysql_error()); $reg_del = mysql_fetch_array($exe_del, MYSQL_ASSOC); } } } if ($_GET['acao]== "altera_qtd") { if(isset($_POST['qtd'])) { if (is_array($_POST['qtd'])) { foreach($_POST['qtd'] as $id_produto =>$qtd) { if (is_numeric($id_produto)&& is_numeric($qtd)) { $sql_alt = "UPDATE carrinho set qtd_produto=$qtd' WHERE id_produto='$id_produto' AND SESSAO='".session_id()."'"; $exe_alt =mysql_query($sql_alt,$base) or die(mysql_error()); $reg_alt = mysql_fetch_array($exe_alt, MYSQL_ASSOC); } } } } }}?><html><head><title>Carrinho de compras</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form action="cart.php?acao=altera_qtd" method="post"><table border="1" width="100"> <tr> <td width="10%"><strong>id</strong></td> <td width="30%"> <strong>produto</strong></td> <td width="15%"> <strong>remover</strong></td> <td width="15%"><strong>preço</strong></td> <td width="15%"><strong>Qtd</strong></td> <td width="15%"><strong>SubTotal</strong></td> </tr> <? $sql_lista = "SELECT * FROM carrinho WHERE sessao='".session_id()."'ORDER BY nome_produto ASC"; $exec_lista = mysql_query($sql_lista, $base) or die(mysql_error()); $num_lista = mysql_num_rows($exec_lista); if ($num_lista > 0) { $total_carrinho=0; while ($reg_lista = mysql_fetch_array($exec_lista,MYSQL_ASSOC)) { $total_carrinho+=($reg_lista['preco_produto]*$reg_lista['qtd_produto']); ?> <tr> <td width=10%"><?=$reg_lista['id_produto]?></td> <td width="30%"><?=$reg_lista['nome_produto']?></td> <td width=15%"><a href="cart.php?acao=del&id=<?=$reg_lista['id_produto]?>">X</a></td> <td width="15%"><?=number_format($reg_lista['preco_produto'],2,",",".")?></td> <td width=15%"><input type="text" size="3" name="qtd[<?=$reg_lista['id_produto]?>]" value="<?=$reg_lista['qtd_produto']?>" </td> <td width=15%"><?=number_format($reg_lista['preco_produto]*$reg_lista['qtd_produto'],2,",",".")?></td> </tr> <? } } ?> <tr> <td colspan="5"><div align="right">Total</div></td> <td><?=number_format($total_carrinho,2,",",".")?></td> </tr></table><input type="submit" value="Alterar Quantidade"></form><a href="produtos.php"> continuar comprando </a></body></html>O erro que esta dando é:Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\carrinho\cart.php on line 28 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alaerte Postado Julho 24, 2008 Denunciar Share Postado Julho 24, 2008 Você está usando COUNT(*), e o correto para se contar registros neste caso é o mysql_result();nestas linhas:$reg_cont = mysql_fetch_array($exe_cont, MYSQL_ASSOC); if ($reg_cont['n_prod']==0){ troque para: if(mysql_result($reg_cont,0,'n_prod') != 0){ } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Evandro Araujo
Codigo:
<?php
session_start();
include("config.php");
if (isset($_GET['acao'])) {
if ($_GET['acao']== "add") {
if (isset($_GET['id'])) {
if (is_numeric($_GET['id'])) {
$id_prod = addslashes(htmlentities($_GET['id']));
$sql_cont = "SELECT COUNT(*) AS n_prod FROM carrinho where id_produto=$id_prod' and sessao='".session_id()."'";
$exe_cont = mysql_query($sql_cont,$base) or die(mysql_error());
$reg_cont = mysql_fetch_array($exe_cont, MYSQL_ASSOC);
if ($reg_cont['n_prod]==0) {
$sql_prod = "SELECT * FROM produtos WHERE id_produto='$id_prod'";
$exe_prod = mysql_query($sql_prod,$base) or die(mysql_error());
$num_prod = mysql_num_rows($exe_prod);
echo $num_prod;
if ($num_prod > 0) {
echo "teste";
$reg_prod = mysql_fetch_array($exe_prod, MYSQL_ASSOC);
$sql_add = "INSERT INTO carrinho(id_produto, nome_produto, preco_produto, qtd_produto, sessao)
VALUES
('".$reg_prod['id_produto']."', '".$reg_prod['nome_produto']."', '".$reg_prod['preco_produto']."',1,'".session_id()."')";
$exe_add = mysql_query($sql_add,$base) or die(mysql_error());
$reg_add = mysql_fetch_array($exe_add, MYSQL_ASSOC);
}
}
}
}
}
if ($_GET['acao']== "del") {
if (isset($_GET['id'])) {
if (is_numeric($_GET['id'])) {
$id_prod = addslashes(htmlentities($_GET['id']));
$sql_del = "DELETE FROM carrinho WHERE id_produto=$id_prod' AND sessao='".session_id()."'";
$exe_del =mysql_query($sql_del,$base) or die(mysql_error());
$reg_del = mysql_fetch_array($exe_del, MYSQL_ASSOC);
}
}
}
if ($_GET['acao]== "altera_qtd") {
if(isset($_POST['qtd'])) {
if (is_array($_POST['qtd'])) {
foreach($_POST['qtd'] as $id_produto =>$qtd) {
if (is_numeric($id_produto)&& is_numeric($qtd)) {
$sql_alt = "UPDATE carrinho set qtd_produto=$qtd' WHERE
id_produto='$id_produto' AND SESSAO='".session_id()."'";
$exe_alt =mysql_query($sql_alt,$base) or die(mysql_error());
$reg_alt = mysql_fetch_array($exe_alt, MYSQL_ASSOC);
}
}
}
}
}
}
?>
<html>
<head>
<title>Carrinho de compras</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="cart.php?acao=altera_qtd" method="post">
<table border="1" width="100">
<tr>
<td width="10%"><strong>id</strong></td>
<td width="30%"> <strong>produto</strong></td>
<td width="15%"> <strong>remover</strong></td>
<td width="15%"><strong>preço</strong></td>
<td width="15%"><strong>Qtd</strong></td>
<td width="15%"><strong>SubTotal</strong></td>
</tr>
<?
$sql_lista = "SELECT * FROM carrinho WHERE sessao='".session_id()."'ORDER BY nome_produto ASC";
$exec_lista = mysql_query($sql_lista, $base) or die(mysql_error());
$num_lista = mysql_num_rows($exec_lista);
if ($num_lista > 0) {
$total_carrinho=0;
while ($reg_lista = mysql_fetch_array($exec_lista,MYSQL_ASSOC)) {
$total_carrinho+=($reg_lista['preco_produto]*$reg_lista['qtd_produto']);
?>
<tr>
<td width=10%"><?=$reg_lista['id_produto]?></td>
<td width="30%"><?=$reg_lista['nome_produto']?></td>
<td width=15%"><a href="cart.php?acao=del&id=<?=$reg_lista['id_produto]?>">X</a></td>
<td width="15%"><?=number_format($reg_lista['preco_produto'],2,",",".")?></td>
<td width=15%"><input type="text" size="3" name="qtd[<?=$reg_lista['id_produto]?>]" value="<?=$reg_lista['qtd_produto']?>" </td>
<td width=15%"><?=number_format($reg_lista['preco_produto]*$reg_lista['qtd_produto'],2,",",".")?></td>
</tr>
<?
}
}
?>
<tr>
<td colspan="5"><div align="right">Total</div></td>
<td><?=number_format($total_carrinho,2,",",".")?></td>
</tr>
</table>
<input type="submit" value="Alterar Quantidade">
</form>
<a href="produtos.php"> continuar comprando </a>
</body>
</html>
O erro que esta dando é:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\carrinho\cart.php on line 28
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.