Logo Hardware.com.br
mateusluiz
mateusluiz Super Participante Registrado
815 Mensagens 0 Curtidas

não deleta coluna em PHP, não sei por que?me ajudem

#1 Por mateusluiz 26/04/2005 - 11:17
daew galerinha
eu sempre fiz o meu excluir desse jeito e sempre funcionou não sei por que dessa vez não
eis o codigo

fatura.php

$sql = "Select movimento.*, produto.* from movimento, produto where produto.nidProduto=movimento.nidProduto and numNota = $numNota order by movimento.codigo";
$resSql = mysql_query($sql);
$totGeral = 0;
while ($valor = mysql_fetch_array($resSql))
{
$total = $valor["prcUnitario"] * $valor["qtdVendida"];
$totGeral = $totGeral + $total;
$codigo=$valor["codigo"];
$nidProduto = $valor["nidProduto"];

echo "<tr>";
echo "<td>" . $valor["nidItem"] . "</td>";
echo "<td align=right>" . $valor["nomProduto"] . "</td>";

echo "<td align=right>" . $valor["qtdVendida"] . "</td>";
echo "<td align=right>" . $valor["prcUnitario"] . "</td>";
echo "<td align=right>$total</td>";
echo "<td align=right><a href='itens_excluir.php?codigo=$codigo'>Excluir </a></td></tr>"; //principal acho que é aqui
}



itens_excluir.php

<?
require("config.ini&quot;

$sql = "delete from movimento where codigo='$codigo'";
$query = mysql_query($sql);
?>


poxa, ja tentei d tudo e não csg

flw
kerberos-nit
kerberos-nit Super Participante Registrado
579 Mensagens 5 Curtidas
#2 Por kerberos-nit
26/04/2005 - 11:27
dica:

mande imprimir na tela a sua query e veja o que está errado com ela...

exemplo:

<?
require("config.ini");
$sql = "delete from movimento where codigo='$codigo'";
echo $sql;
//$query = mysql_query($sql);
?>

desta forma você vai poder ver o que está errado na query, pois certamente o erro está aí... pode ser que $codigo esteja vindo em branco, ou com numero errado.

abraços.
Alvaro Carneiro
Mindnet - Hospedagem Inteligente
Participe da nossa pesquisa e concorra a uma
Canon A590IS

http://mindnet.com.br

mateusluiz
mateusluiz Super Participante Registrado
815 Mensagens 0 Curtidas
#6 Por mateusluiz
26/04/2005 - 13:56
Acquila
Hmm... O código do produto que está sendo passado está sendo recebido pelo arquivo itens_excluir.php ??
Tente fazer...


não deu
olha o codigo completo do arquivo fatura.php

<?
require("config.ini&quot;

$db = mysql_connect("$host", "$user","$senha&quot or die("Erro de Conexão&quot;
mysql_select_db("$dbNome", $db) or die("Base de dados não existe&quot;

$sql = "Select priNome, numNota from operador "
."where cpfOperador = '$cpfOperador'";
$resSql = mysql_query($sql, $db);
$priNome = mysql_result($resSql,$counter,"priNome&quot;
$numNota = mysql_result($resSql,$counter,"numNota&quot;

if ($numNota == 999999999) {
$sql = "Select min(numNota) as Numero FROM operador";
$resSql = mysql_query($sql, $db);
$numNota = mysql_result($resSql,$counter,"Numero&quot - 1;
$sql = "Update Operador set numNota = $numNota "
."where cpfOperador = '$cpfOperador'";
$resSql = mysql_query($sql, $db);
}

$sql = "Select nidItem FROM movimento where numNota = $numNota";
$resSql = mysql_query($sql, $db);
$numItem = mysql_numrows($resSql) + 1;

$sql = "Insert Into movimento (numNota, nidItem, nidProduto, "
."prcUnitario, qtdVendida) Values ($numNota, $numItem, "
."'$nidProduto', $prcUnitario, $qtdVendida)";

$resSql = mysql_query($sql, $db);

?>

<h1><img src="<? echo $dirImage; ?>carrinho.gif" border="0">Fatura</h1>

<table width=100%>
<tr bgColor=<? echo $corTab; ?> ><th>Item</th><th>Produto</th><th width=90>Quantidade</th>
<th width=90>Valor Unit</th><th width=90>Valor Total</th><th width=90>Excluir</th></th></tr>

<?
$sql = "Select movimento.*, produto.* from movimento, produto where produto.nidProduto=movimento.nidProduto and numNota = $numNota order by movimento.codigo";
$resSql = mysql_query($sql);
$totGeral = 0;
while ($valor = mysql_fetch_array($resSql))
{
$total = $valor["prcUnitario"] * $valor["qtdVendida"];
$totGeral = $totGeral + $total;
$codigo=$valor["codigo"];
$nidProduto = $valor["nidProduto"];


echo "<tr>";
echo "<td>" . $valor["nidItem"] . "</td>";
echo "<td align=right>" . $valor["nomProduto"] . "</td>";

echo "<td align=right>" . $valor["qtdVendida"] . "</td>";
echo "<td align=right>" . $valor["prcUnitario"] . "</td>";
echo "<td align=right>$total</td>";
echo "<td align=right><a href='itens_excluir.php?codigo=$codigo'>Excluir $codigo</a></td></tr>"; //excluir que não funciona aqui
}


?>
</table>

<br>
<p class=titulo>
Operador: <? echo $priNome; ?><br>
Data da Compra: <? echo date('d/m/Y'); ?><br>
Valor Total: <? echo $totGeral; ?></p>

<?
if ($fechar == "&quot {
?>

<table>
<tr><td>
<form action="<? echo $PHP_SELF."?fechar='S'"; ?>" method="POST">
<input type=HIDDEN name=cpfOperador value="<? echo $cpfOperador ?>">
<input type=submit value="Finalizar">
</form>
</td><td>
<form action="listar.php" method="POST">
<input type=HIDDEN name=cpfOperador value="<? echo $cpfOperador ?>">
<input type=submit value="Continuar">
</form>
</td></tr>
</table>

<?
} else {

$sql = "Insert Into nota (datCompra, cpfOperador, prcTotVenda)"
." Values (now(), '$cpfOperador', $totGeral)";
$resSql = mysql_query($sql, $db);

$sql = "Select max(numNota) as Numero from nota where cpfOperador = '$cpfOperador'";
$resSql = mysql_query($sql, $db);
$numero = mysql_result($resSql,$counter,"Numero&quot;

$sql = "Update movimento set NumNota = $numero "
." where NumNota = $numNota";
$resSql = mysql_query($sql, $db);

$sql = "Update Operador set numNota = 999999999 "
."where cpfOperador = '$cpfOperador'";
$resSql = mysql_query($sql, $db);

?>
<form action="index.php" method="POST">
<input type=HIDDEN name=cpfOperador value="<? echo $cpfOperador ?>">
<p class="titulo">Pedido Concluído sem problemas</p>
<input type=submit value="Retornar">
</form>

<?
}
?>


aqui ta o itens_excluir.php

<?
$conexao=mysql_connect("localhost","mateus","123&quot;
$db=mysql_select_db("pedidos_pizza&quot;
$cod=$_GET['codigo'];
$sql = "delete from movimento where codigo='$cod";
$query = mysql_query($sql);
?>


fiz umas pequenas modificações no excluir
botei no servidor também não funcionou
Kleber Costa
Kleber Costa General de Pijama Registrado
5.2K Mensagens 1 Curtida
#8 Por Kleber Costa
26/04/2005 - 18:02
Eu vi dois erros, mysql_numrows e no sql do excluir tá faltando '.
Usa mysql_free_result() pra "limpar" essa variável que recebe o resultado da consulta e lembra de fechar a conexão!
Essa variável $counter tá boiando nesse código não?


$conexao = mysql_connect("localhost","mateus","123&quot;
$db = mysql_select_db("pedidos_pizza&quot;
$_GET['codigo'] = mysql_real_escape_string(trim($_GET['codigo']));
$sql = "DELETE FROM movimento WHERE codigo='" . $_GET['codigo'] . "'";
mysql_query($sql) or die("Erro hein!&quot;
@mysql_close($conexao);
Salve! Ó terra dos altos coqueiros!
De belezas soberbo estendal!
Nova Roma dos bravos guerreiros
Pernambuco, imortal, imortal!


Linux User #262254
mateusluiz
mateusluiz Super Participante Registrado
815 Mensagens 0 Curtidas
#9 Por mateusluiz
28/04/2005 - 15:15
Kleber Costa
Eu vi dois erros, mysql_numrows e no sql do excluir tá faltando '.
Usa mysql_free_result() pra "limpar" essa...


onde eu coloco esse esse mysql_free_result???
deu esse erro no excluir

Fatal error: Call to undefined function: mysql_real_escape_string() in c:\apache\htdocs\loja\itens_excluir.php on line 4


tipo, cada vez que eu atualizo essa pagina com um F5 ou com o refresh do browser ele repete o ultimo produto que foi adicionado
ex:
1 pizza de frango
ai do um refresh
ele repete
1 pizza de frango
2 pizza de frango

sab oq pode ser isso?
Kleber Costa
Kleber Costa General de Pijama Registrado
5.2K Mensagens 1 Curtida
#12 Por Kleber Costa
29/04/2005 - 16:01
Você pode resolver isso de duas formas:
1 - Separar esse código em mais arquivos e deixar um exclusivo para inserir dados no banco, outro pra consultar/mostrar esses dados... Quando você postar no arquivo que vai inserir no banco os dados, no final desse arquivo você redireciona para o arquivo que vai ser responsável por consultar/mostrar. Assim o usuário quando atualizar a página vai estar atualizando a página de consultar/mostrar, evitando o insert duplicado no banco.

2 - Usar session para controlar o insert no banco. Por exemplo, lá no começo do fatura.php você pergunta se $_POST está setada, caso esteja, coloca alguma valor na session, tipo $_SESSION['postado'] = TRUE; por exemplo! Aí quando o usuário for atualizar a página você deverá ter feito uma rotina para perguntar se a $_SESSION['postado'] está setada! Essa segunda opção não é a melhor solução mas quebra um galho!

Uma sugestão: Reescreve teu código pra ele funcionar com o register_globals desligado.

obs: mysql_numrows não está errado oops.png ! Mas a função está depreciada.
Salve! Ó terra dos altos coqueiros!
De belezas soberbo estendal!
Nova Roma dos bravos guerreiros
Pernambuco, imortal, imortal!


Linux User #262254
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal