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

Evitar reptir datos en MySQL

Estas en el tema de Evitar reptir datos en MySQL en el foro de Herramientas y Software en Foros del Web. OLa tengo una duda con el dreamweaver CS3 Estoy trabajando en un proyecto para una universidad,pero en el transcurso algo salio mal.les explico, en esta ...
  #1 (permalink)  
Antiguo 03/07/2010, 20:55
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 9 meses
Puntos: 0
Evitar reptir datos en MySQL

OLa tengo una duda con el dreamweaver CS3

Estoy trabajando en un proyecto para una universidad,pero en el transcurso algo salio mal.les explico, en esta imagen hay unos campos que no pueden ser repetidos en la base de datos.



YA los puse como UNIQUE en MySQLy cuando envio algo repetido me dice esto

Duplicate entry '123456' for key 'USUDOC'

USUDOC es el campo para guardar el documento del usuario a registrar.

Y es correcto,pero lo que quiero es que salga algun mensaje que diga que ese documento de usuario ya existe,ya que no todos saben que significa Duplicate entry '123456' for key 'USUDOC' ,pasa lo mismo con el otro campo señalado y pss no se como hacer eso de que primero revise si ya existe ese registro que va a realizar.

Aca dejo el codigo de las consultas para ingresar una dependencia en otra pagina,solo es ingresar valores al campo dependencia,que tambien es UNIQUE en el MySQL

Código PHP:
<?php require_once('Connections/conexion.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($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"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO dependencia (DEPNOM) VALUES (%s)",
                       
GetSQLValueString($_POST['DEPNOM'], "text"));

  
mysql_select_db($database_conexion$conexion);
  
$Result1 mysql_query($insertSQL$conexion
  or die(
mysql_error());

  
$insertGoTo "exito.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}

Última edición por Yolfran; 03/07/2010 a las 21:05
  #2 (permalink)  
Antiguo 15/07/2010, 17:55
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: Evitar reptir datos en MySQL

DW solo hace esa validación para la tabla de usuarios (por lo menos en el DW CS3) lo que no entiendo por qué. Si lo hacen para uno lo podrían hacer para todo.

Pero bueno, si necesitas hacer una validación del lado del servidor necesitas hacer un recordset primero que verifique si se cumple esa condición. Si se cumple paras el insert. Si no se cumple dejas que pase. En tu caso sería hacer un recordset donde el campo de tu base de datos para "Documento" sea igual a la variable del formulario que envías. Si se cumple no dejas que se haga el insert y puedes hasta mostrar un error.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...

Etiquetas: campos, mysql, repetidos
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 12:09.