Ante todo gracias por responder.
Tengo dos archivos add.php y edit.php
En el add.php no tengo problemas porque no obtiene ningun dato en el value, viene asi:
<input name="Copete_en" type="text" id="Copete_en" value="">
Ahi si no coloco nada, (el campo de la base por defecto es
NULL) no tengo problemas.
utilizo un insert para crear el producto.
En el edit.php el value, viene con datos de la base, y utilizo un update que utiliza una funcion desde otro archivo.
Esto es lo que tengo (parte del codigo)en el edit.php para "updatear"
Código:
if(isset($_POST["edit"])){
$tipo = $_POST['Tipo'];
$IdProducto = $_POST['IdProducto'];
mysql_update('',TABLA_PRODUCTOS,"IdProducto",$IdProducto,'POST');
header("Location: edit.php?mensaje=El producto se ha guardado con exito&IdRubro=" . $_POST['SubSubFamilia'] . "&Familia=" . $_POST['Familia'] . "&IdProducto=" . $IdProducto."&Tipo=".$tipo);
}
y la funcion que esta en otro archivo hace esto, es bastenate largo pero creo que solo utiliza una parte:
Código:
function mysql_update($Base = '',$Tabla,$Field_Name,$Field_Value,$Tipo = 'POST',$campos = '',$valores = '',$redefine = ''){
global $sistema, $debug, $HTTP_POST_VARS, $HTTP_GET_VARS;
if($campos != "" && $valores != ""){
$checkbox_temp_campos = split(",",$campos);
$checkbox_temp_datos = split(",",$valores);
}
// Busco los campos en la tabla de datos:
$query = "SHOW FIELDS FROM $Tabla";
$Filas = mysql_query($query, $sistema["conexion"]);
$totalRows_Filas = mysql_num_rows($Filas);
// Creo el arreglo con las filas:
$i = 0;
while ($row_Filas = mysql_fetch_assoc($Filas))
$Datos_Filas_A[$i++] = $row_Filas["Field"];
// Creo los arreglos con los campos:
$i = 0;
if($Tipo == 'POST'){
reset ($HTTP_POST_VARS);
while(list($key, $val) = each($HTTP_POST_VARS)) {
if (strpos($key,"CONF_") === FALSE) {
if ($val != "") {
if (in_array($key,$Datos_Filas_A)) {// Es un campo para update ????
if($key == "Clave") // Caso particular de las claves:
$Datos[$i] = md5($val);
elseif(isset($redefine[$key]))
$Datos[$i] = $redefine[$key];
else
$Datos[$i] = $val;
$Campos[$i++] = $key;
if ($debug) { echo "<br>" . $key . " - " . $val; }
}
}
}
}
}
elseif($Tipo == 'GET'){
reset ($HTTP_GET_VARS);
while(list($key, $val) = each($HTTP_GET_VARS)) {
if(isset($$key) && $$key != '') $val = $$key;
if (strpos($key,"CONF_") === FALSE) {
if ($val != "") {
if (in_array($key,$Datos_Filas_A)) {// Es un campo para update ????
if($key == "Clave") // Caso particular de las claves:
$Datos[$i] = md5($val);
elseif(isset($redefine[$key]))
$Datos[$i] = $redefine[$key];
else
$Datos[$i] = $val;
$Campos[$i++] = $key;
if ($debug) { echo "<br>" . $key . " - " . $val; }
}
}
}
}
}
else die("Eror grave. Falta definir el tipo de consulta");
for($j = 0; $j < count($checkbox_temp_campos) + 1; $j++){
if(!in_array($checkbox_temp_campos[$j],$Campos)){
$Datos[$i] = $checkbox_temp_datos[$j];
$Campos[$i] = $checkbox_temp_campos[$j];
$i++;
}
}
// Formo el Query
$i = 0;
$Query_Campos = "";
$j = count($Campos) - 1;
$Datos_Mail = "";
while ($i < $j) {
if (in_array($Campos[$i],$Datos_Filas_A)) {
if ($i == ($j - 1))
$Query_Campos .= $Campos[$i] . " = '" . $Datos[$i] . "'";
else
$Query_Campos .= $Campos[$i] . " = '" . $Datos[$i] . "', ";
}
$i++;
}
$Field_Value = "'" . $Field_Value . "'";
if ($Query_Campos != "") {
$query = " UPDATE $Tabla
SET $Query_Campos
WHERE $Field_Name = $Field_Value";
ExecMysql($query);
return mysql_affected_rows();
}
return 0;
if ($debug) echo "<br>Query:" . $Query_Campos . "<hr>$query<hr>";
}
Gracias