Foros del Web » Creando para Internet » Herramientas y Software »

Actuilizar (Update) y Nuevo (Insert) en una misma Página?

Estas en el tema de Actuilizar (Update) y Nuevo (Insert) en una misma Página? en el foro de Herramientas y Software en Foros del Web. Hola a todos, he creado en DW una página en la cual he creado dos formularios, el primero para actualizar información y el segundo para ...
  #1 (permalink)  
Antiguo 22/11/2008, 09:08
 
Fecha de Ingreso: junio-2002
Mensajes: 261
Antigüedad: 22 años, 5 meses
Puntos: 0
Actuilizar (Update) y Nuevo (Insert) en una misma Página?

Hola a todos, he creado en DW una página en la cual he creado dos formularios, el primero para actualizar información y el segundo para insertarla si esta no existe, los dos formularios afectaran la misma tabla, pero claro con sus acciones adecuadas. La pregunta es, cuando trato de ejecutar el actualizar un dato ya existente la web me retorna que no se puede por que se crearía un duplicado, he revisado los campos ocultos que crea DW para cada formulario y el de Insert esta como MM_Insert y el del Update como MM_Update, es decir que en el momento en que el código realza la revisión del tipo de acción, debería ejecutar el Update en caso expuesto, pero al parecer ejecuta el Insert por el error retornado...anexo el código el cual es el creado por DW, sino es posible tener las dos acciones en una misma pantalla informemenlo por favor. Gracias

Código PHP:
<?php
if (!isset($_SESSION)) {
  
session_start();
}
$MM_authorizedUsers "0";
$MM_donotCheckaccess "false";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers$strGroups$UserName$UserGroup) { 
  
// For security, start by assuming the visitor is NOT authorized. 
  
$isValid False

  
// When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  
if (!empty($UserName)) { 
    
// Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    
$arrUsers Explode(","$strUsers); 
    
$arrGroups Explode(","$strGroups); 
    if (
in_array($UserName$arrUsers)) { 
      
$isValid true
    } 
    
// Or, you may restrict access to only certain users based on their username. 
    
if (in_array($UserGroup$arrGroups)) { 
      
$isValid true
    } 
    if ((
$strUsers == "") && false) { 
      
$isValid true
    } 
  } 
  return 
$isValid
}

$MM_restrictGoTo "noacceso.php";
if (!((isset(
$_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  
$MM_qsChar "?";
  
$MM_referrer $_SERVER['PHP_SELF'];
  if (
strpos($MM_restrictGoTo"?")) $MM_qsChar "&";
  if (isset(
$QUERY_STRING) && strlen($QUERY_STRING) > 0
  
$MM_referrer .= "?" $QUERY_STRING;
  
$MM_restrictGoTo $MM_restrictGoTo$MM_qsChar "accesscheck=" urlencode($MM_referrer);
  
header("Location: "$MM_restrictGoTo); 
  exit;
}
?>
<?php
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']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {
  
$insertSQL sprintf("INSERT INTO usuario (cedula, nombre, password, Nivel) VALUES (%s, %s, %s, %s)",
                       
GetSQLValueString($_POST['TxtCedNew'], "text"),
                       
GetSQLValueString($_POST['TxtNameNew'], "text"),
                       
GetSQLValueString($_POST['TxtPassNew'], "text"),
                       
GetSQLValueString($_POST['CmbNivelNew'], "int"));

  
mysql_select_db($database_comisaria$comisaria);
  
$Result1 mysql_query($insertSQL$comisaria) or die(mysql_error());
}

if ((isset(
$_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  
$updateSQL sprintf("UPDATE usuario SET nombre=%s, password=%s, Nivel=%s WHERE cedula=%s",
                       
GetSQLValueString($_POST['TxtNameUsrEdit'], "text"),
                       
GetSQLValueString($_POST['TxtPassUsrEdit'], "text"),
                       
GetSQLValueString($_POST['CmbNivelusrEdit'], "int"),
                       
GetSQLValueString($_POST['TxtCedUsrEdit'], "text"));

  
mysql_select_db($database_comisaria$comisaria);
  
$Result1 mysql_query($updateSQL$comisaria) or die(mysql_error());
}

mysql_select_db($database_comisaria$comisaria);
$query_UsuarioSQL "SELECT cedula FROM usuario ORDER BY cedula ASC";
$UsuarioSQL mysql_query($query_UsuarioSQL$comisaria) or die(mysql_error());
$row_UsuarioSQL mysql_fetch_assoc($UsuarioSQL);
$totalRows_UsuarioSQL mysql_num_rows($UsuarioSQL);

$colname_UsuarioEditSQL "-1";
if (isset(
$_POST['CmbSQLCedula'])) {
  
$colname_UsuarioEditSQL = (get_magic_quotes_gpc()) ? $_POST['CmbSQLCedula'] : addslashes($_POST['CmbSQLCedula']);
}
mysql_select_db($database_comisaria$comisaria);
$query_UsuarioEditSQL sprintf("SELECT * FROM usuario WHERE cedula = '%s'"$colname_UsuarioEditSQL);
$UsuarioEditSQL mysql_query($query_UsuarioEditSQL$comisaria) or die(mysql_error());
$row_UsuarioEditSQL mysql_fetch_assoc($UsuarioEditSQL);
$totalRows_UsuarioEditSQL mysql_num_rows($UsuarioEditSQL);

mysql_select_db($database_comisaria$comisaria);
$query_NivelSQL "SELECT * FROM nivelesacceso ORDER BY idnivel ASC";
$NivelSQL mysql_query($query_NivelSQL$comisaria) or die(mysql_error());
$row_NivelSQL mysql_fetch_assoc($NivelSQL);
$totalRows_NivelSQL mysql_num_rows($NivelSQL);
?>
__________________
Buscando el camino...
  #2 (permalink)  
Antiguo 27/11/2008, 08:11
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Respuesta: Actuilizar (Update) y Nuevo (Insert) en una misma Página?

puede ser que no has puesto el key de tu tabla como autoincrement. Ese error ya me ha psado varias veces.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #3 (permalink)  
Antiguo 27/11/2008, 17:48
 
Fecha de Ingreso: junio-2002
Mensajes: 261
Antigüedad: 22 años, 5 meses
Puntos: 0
Respuesta: Actuilizar (Update) y Nuevo (Insert) en una misma Página?

No juaniquillo...gracias ya quedo solucionado...eran problemas al no haber asignado a los elementos dinámicos sus campos respectivos...osea no hacian nada x q no tenían con quién seleccionarse...Gracias
__________________
Buscando el camino...
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 18:54.