Ver Mensaje Individual
  #6 (permalink)  
Antiguo 05/03/2009, 03:36
gastonmar
 
Fecha de Ingreso: julio-2006
Mensajes: 18
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: envio de datos vacios en un input name

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