Foros del Web » Programando para Internet » PHP »

Problema modificando registo

Estas en el tema de Problema modificando registo en el foro de PHP en Foros del Web. Estoy trabajando con php y mysql, tengo un formulario de modificacion de registro, me funciona en ciertas partes pero en otras no... Código: // manejo ...
  #1 (permalink)  
Antiguo 26/08/2008, 11:59
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Problema modificando registo

Estoy trabajando con php y mysql, tengo un formulario de modificacion de registro, me funciona en ciertas partes pero en otras no...

Código:
// manejo de variables de fecha enviadas por el formulario
$f_inicio="$f_in_year-"."$f_in_mes-"."$f_in_dia";
$f_fin="$f_fin_year-"."$f_fin_mes-"."$f_fin_dia";
// fin de variables de fecha enviadas por el formulario
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE reg_event SET nit=%s, titulo=%s, descripcion=%s, Lugar=%s, entrada=%s, tipo1=%s, ciudad=%s, f_inicio=%s, f_fin=%s WHERE id=%s",
                       GetSQLValueString($_POST['nit'], "int"),
                       GetSQLValueString($_POST['titulo'], "text"),
                       GetSQLValueString($_POST['descripcion'], "text"),
                       GetSQLValueString($_POST['Lugar'], "text"),
                       GetSQLValueString($_POST['entrada'], "int"),
                       GetSQLValueString($_POST['tipo1'], "int"),
                       GetSQLValueString($_POST['ciudad'], "text"),
                       GetSQLValueString('$f_inicio', "date"), // insersion de fecha sin post
                       GetSQLValueString('$f_fin', "date"), // insersion de fecha sin post
                       GetSQLValueString($_POST['id'], "int"));
Me modifica todos los campos menos los de fecha. Me inserta 0000-00-00 en los dos campos. No se que es lo que sucede. Quien me pueda colaborar estare eternamente agradecido...
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #2 (permalink)  
Antiguo 26/08/2008, 12:01
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Problema modificando registo

Hola

Haz intentado imprimir las variables de fechas que estas creando a ver que contienen??

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 26/08/2008, 12:23
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema modificando registo

Cambia esto:
Código PHP:
$f_inicio="$f_in_year-"."$f_in_mes-"."$f_in_dia";
$f_fin="$f_fin_year-"."$f_fin_mes-"."$f_fin_dia"
Por esto:
Código PHP:
$f_inicio $f_in_year."-".$f_in_mes."-".$f_in_dia;
$f_fin $f_fin_year."-".$f_fin_mes."-".$f_fin_dia
  #4 (permalink)  
Antiguo 26/08/2008, 12:37
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Problema modificando registo

Cuando imprimo las variables me muestra concatenadamente lo que se selecciono en los lista menu (2008-08-22) pero no actualiza en la base de datos, solo me modifica todo a (0000-00-00).

Modifique el codigo tal como Taldreakan me indico pero el problema persiste, no se si el problema sea por la funcion. Vuelvo a colocar el codigo con la funcion completa.

Código:
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
// manejo de variables de fecha enviadas por el formulario
$f_inicio = $f_in_year."-".$f_in_mes."-".$f_in_dia;
$f_fin = $f_fin_year."-".$f_fin_mes."-".$f_fin_dia; 
// fin de variables de fecha enviadas por el formulario
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE reg_event SET nit=%s, titulo=%s, descripcion=%s, Lugar=%s, entrada=%s, tipo1=%s, ciudad=%s, f_inicio=%s, f_fin=%s WHERE id=%s",
                       GetSQLValueString($_POST['nit'], "int"),
                       GetSQLValueString($_POST['titulo'], "text"),
                       GetSQLValueString($_POST['descripcion'], "text"),
                       GetSQLValueString($_POST['Lugar'], "text"),
                       GetSQLValueString($_POST['entrada'], "int"),
                       GetSQLValueString($_POST['tipo1'], "int"),
                       GetSQLValueString($_POST['ciudad'], "text"),
                       GetSQLValueString('$f_inicio', "date"), // insersion de fecha sin post
                       GetSQLValueString('$f_fin', "date"), // insersion de fecha sin post
                       GetSQLValueString($_POST['id'], "int"));
Muchisimas gracias por sus respuestas...
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 26/08/2008, 12:53
 
Fecha de Ingreso: mayo-2005
Mensajes: 201
Antigüedad: 18 años, 10 meses
Puntos: 2
Respuesta: Problema modificando registo

Recuerda que generalmente los gestores de base de datos guardan de form distinta los tipo date, revisa que lo estes enviando como lo espera la base de datos
__________________
Saludos!
Mty-NL..
  #6 (permalink)  
Antiguo 26/08/2008, 13:35
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Problema modificando registo

Si lo envío como date y el campo en la base de datos es date. Lo que esta sucediendo es que las variables con las cuales concateno la fecha que son f_inicio y f_fin no me las actualiza en la base de datos. Es decir la función tiene un problema al no tomar dichas variables y modificarlas en la base de datos.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #7 (permalink)  
Antiguo 26/08/2008, 13:54
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema modificando registo

Creo que debes sacar las variables de las comillas en esta parte:
Código PHP:
                       GetSQLValueString('$f_inicio'"date"), // insersion de fecha sin post
                       
GetSQLValueString('$f_fin'"date"), // insersion de fecha sin post
                       
GetSQLValueString($_POST['id'], "int")); 

Deberia quedar asi:
Código PHP:
                       GetSQLValueString($f_inicio"date"), // insersion de fecha sin post
                       
GetSQLValueString($f_fin"date"), // insersion de fecha sin post
                       
GetSQLValueString($_POST['id'], "int")); 
  #8 (permalink)  
Antiguo 26/08/2008, 14:00
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema modificando registo

La funcion GetSQLValueString recibe como parametros dos cadenas: '$f_inicio' y 'date', ambas son evaluadas como cadenas y no como variables.

POSDATA: Es la primera vez que veo la funcion GetSQLValueString, parece ser bastante util para filtrar errores por tipos de variables distintos.
  #9 (permalink)  
Antiguo 26/08/2008, 15:27
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Problema modificando registo

Muchisimas gracias, el problema eran las comillas simples. Con eso se soluciono el problema. Les agradezco enormemente.

Pueden dar este caso por solucionado.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:57.