La primera parte del codigo un poco mas limpia podria quedar asi:
Código PHP:
Ver original<?php
include("conexion.php");
include("seguridad.php");
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>Cotización</title>
<link href="body.css" rel="stylesheet" type="text/css">
</head>
<body>
<header>
<h2>Editar Cotización</h2>
</header>
<?php
if(isset($_POST["accion"])) {
if($_POST["accion"] == "agregar")
{
foreach($_POST['txtnopro'] as $key => $nopro)
$sql = (isset($sql) ?
$sql.", " : "INSERT INTO contenidopedido VALUES ")." ({$_POST["txtnopedido"]},
'{$nopro}',
'{$_POST["txtcantidad"][$key]}',
'{$_POST["txtobs"][$key]}',
'{$_POST["txtnoproy"]}',
'{$_POST["txtuser"]}',
'{$_POST["txtfecha"]}'
)";
echo "<script>
alert('Se inserto correctamente el pedido');
window.location='compras.php';
</script>";
}
elseif($_POST["accion"] == "actualizar")
{
foreach($_POST['txtnoproy'] as $key => $noproyecto)
idproducto='{$_POST["txtnopro"][$key]}',
cantidad='{$_POST["txtcotiz"][$key]}',
observaciones = '{$_POST["txtobscotiz"][$key]}'
WHERE
noproyecto='{$noproyecto}'",
echo "<script>
alert('Se actualizo la cotizacion correctamente');
window.location='ingresoproyectos.php';
</script>";
}
elseif($_POST["accion"] == "eliminar")
{
$q = mysql_query("DELETE FROM cotizaciones WHERE noproyecto='{$_POST["txtnoproy
"]}'",
echo "<script>
alert('Se elimnino la cotizacion correctamente');
window.location='ingresoproyectos.php';
</script>";
}
else
{
die("Accion incorrecta.") }
}
?>
Aunque eso no resulve tu problema, solo emprolija el codigo.
No veo ninguna consulta previa en tu codigo, lo unico que hay es un formulario dinamico, pero en ningun momento te basas en una consulta previa para hacer un update...
Por cierto, meter variables en una consulta sql es malisima idea, cualquier malintencionado podria hacer explotar tu base de datos sin ningun esfuerzo, o quizas alguien por error podria poner un caracter comilla y hacer explotar tu consulta. Lo mejor seria bindear variables con mysqli o usar una DBAL que se encargue de eso.
Personalmente creo que las dbal te ahorrarian mucho tiempo y esfuerzo y ademas te brindarian toda la seguridad que necesitas.
Algunas dbal:
https://github.com/doctrine/dbal https://wiki.phpbb.com/Database_Abstraction_Layer http://dalmp.readthedocs.org/en/latest/Quickstart.html
y la que yo uso para mysql:
https://github.com/Proyecto-NSD/PHP-...master/MariaDB