Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Agregar o no nuevo valor a la tabla

Estas en el tema de Agregar o no nuevo valor a la tabla en el foro de PHP en Foros del Web. Hola! Tengo un formulario desde donde envio la nueva informacion hacia la base de datos. El problema es que quiero evitar valores repetidos por lo ...
  #1 (permalink)  
Antiguo 22/03/2013, 08:45
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 14 años, 7 meses
Puntos: 3
Agregar o no nuevo valor a la tabla

Hola! Tengo un formulario desde donde envio la nueva informacion hacia la base de datos. El problema es que quiero evitar valores repetidos por lo que necesitaria que cuando este haciendo la consulta chequee primero que el nombre del nuevo valor no este repetido en la base. Se que debe ser sencillo pero la verdad ni idea de como se hace. Agradeceria mucho la ayuda!
  #2 (permalink)  
Antiguo 22/03/2013, 09:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Agregar o no nuevo valor a la tabla

Es un tema combinado entre programación y consultas.
La consulta en realidad sería sencilla, aunque no nos estás dando ningún dato como para darte ejemplos (tablas, columnas, consultas probadas).
Si lo que quieres saber es cómo hacerlo en la aplicación, es tema ajeno a este foro, y tendría que pasarte el post al de tu lenguaje.
¿En qué estás programando?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/03/2013, 09:22
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Agregar o no nuevo valor a la tabla

Estoy programando con php. Pense que este era el foro indicado, por si acaso te paso lo (poco) que tengo.

Código PHP:
<?php

include "conn.php";

if(
$_POST['nombre'] != "" && $_POST['direccion'] !=""

    
$nombre $_POST["nombre"]; 
    
$direccion $_POST["direccion"]; 
    
$idioma $_POST["idioma"];    
            
    
    
$envio "INSERT INTO paginas (`numero`, `Direccion`, `Nombre`,  `Idioma`, `Verificado`, `Borrar`) VALUES (NULL, '$direccion', '$nombre', '$idioma', '0', '0')";

    
$envio2 mysql_query($envio,$db) or die (mysql_error()); 
    echo 
"Enviado Con Exito.";
    } 
    else 
    { 
    echo 
"Debe completar los campos."
    }  

?>
Lo ubique en este foro porque pense que lo que habia que cambiar era solo la consulta mysql.
  #4 (permalink)  
Antiguo 22/03/2013, 09:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Agregar o no nuevo valor a la tabla

No. Las cosas que son programación, por norma interna de los foros de BBDD no se tratan en estos foros.
Te paso el post al Foro de PHP para que te ayuden.
Un par de tips:

1) En todos los casos, siempre es conveniente hacer una validación previa a todo insert/update. Esa etapa es la más larga y engorrosa de todo desarrollo de software.
2) Siempre que un campo en una tabla deba tener valores unicos para todos los registros, es conveniente crear un indice UNIQUE sobre ese campo, de modo que al intentar insertar un dato repetido, la misma BBDD lo rechace, devolviendo un error. No es necesario el indice si el campo buscado es PK porque por definición una PK nunca se repite e intentarlo dispara un error de duplicación de claves.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 22/03/2013, 09:35
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Agregar o no nuevo valor a la tabla

Gracias, lo he solucionado creando el indice UNIQUE.
Otro tema, a que te refieres con validacion previa?
  #6 (permalink)  
Antiguo 22/03/2013, 09:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Agregar o no nuevo valor a la tabla

A que jamás se envía un insert, delete o update a una tabla sin verificar que los valores sean válidos, o bien que no haya sido insertado.
El proceso de validación de datos de todo formulario, y en todas las aplicaciones es largo, engorroso de programar y muy aburrido. Pero es necesario.
Enviar datos basura (esos que la base no aceptará), genera costos de performance, que tarde o temprano se paga.
A veces las validaciones son evidentes, ero no se cumplen: Un teléfono, por ejemplo, no puede tener más de 14 dígitos (incluidos todos), porque no existen; un valor vacío no es igual a un NULL, y mandar números y fechas no se hace de la misma forma. Si ingresas un numero de cliente, antes de proseguir hay que verificar si existe. Si el textbox del formulario debe contener sólo números, debes programarlo para que no reciba caracteres o símbolos... Hay un lago etcétera de validaciones a hacer antes de mandar las cosas a la base, y muchas veces los programadores no quieren hacer eso. Prefieren desperdiciar los recursos de la base y de la red, antes que hacer las cosas bien detalladas.
Hay que ver qué validaciones se deben cumplir en el formulario, cuáles hay que verificar en base y recién en ese momento se debe haber un pedido de confirmación (cosa que jamás se debe olvidar), porque hasta el ultimo momento, el usuario puede arrepentirse.
Por eso digo que es una etapa larga y aburrida, pero necesaria.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 22/03/2013 a las 09:59

Etiquetas: mysql, tabla, valor
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 19:13.