Foros del Web » Programando para Internet » PHP »

comprobar si existe valor en BD con php

Estas en el tema de comprobar si existe valor en BD con php en el foro de PHP en Foros del Web. Hola que tal amigos, he terminado un formulario para almacenar datos, y pues ando haciendo ajustes, para evitar errores, uno de los que me preocupa ...
  #1 (permalink)  
Antiguo 13/04/2010, 08:05
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
comprobar si existe valor en BD con php

Hola que tal amigos, he terminado un formulario para almacenar datos, y pues ando haciendo ajustes, para evitar errores, uno de los que me preocupa y no he logrado encontrar como evitarlo es evitar que se escriba un mismo valor dos veces, es decir.

si tengo un formulario por decir con

nombre:
tipo:
región:
descripción:

y se le asignan los valores[marx, escudo, 4, aumenta el poder en +4]

digamos que no quiero que ni marx, ni la descripcion se repitan, como puedo hacer esto con php? si se intenta subir que de "el articulo ya existe" o algo así, o es desde Mysql? asignando primary keys, por favor necesito una orientacion acerca de que sería lo mejor.

Gracias.
  #2 (permalink)  
Antiguo 13/04/2010, 10:09
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: comprobar si existe valor en BD con php

Con PHP solo tendrías que hacer un SELECT a la base de datos MySQL antes de hacer el INSERT, en ese SELECT usas WHERE para decirle que solo seleccione las consultas que tengan mismo nombre o descripción, después con un if compruebas si ha seleccionado algun dato, si no ha seleccionado ninguno es que no existe y puedes crear ese registro (Seguir con el INSERT que ya tienes hecho)

Después en MySQL a los campos que no quieres que tengan el mismo valor en sus registros les aplicas el valor UNIQUE.


Un saludo
  #3 (permalink)  
Antiguo 13/04/2010, 10:19
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: comprobar si existe valor en BD con php

Y qué tal si te evitas una validación por programación y lo haces directamente con la Db?

Tan sólo debes colocarle a tu campo que no quieres que se repita, un index UNIQUE. Con eso, si alguien intenta ingresar un valor repetido para ese campo, la propia Db no lo permitirá y te arrojará un error.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 13/04/2010, 10:57
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: comprobar si existe valor en BD con php

Es que quiero saber cual es la mejor opcion, gracias a los dos, probaré con ambos.
  #5 (permalink)  
Antiguo 13/04/2010, 11:02
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: comprobar si existe valor en BD con php

Se pueden aplicar ambas, de todos modos si eliges una yo usaría PHP ya que te permite mostrar el error fácilmente.


Un saludo
  #6 (permalink)  
Antiguo 13/04/2010, 11:09
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: comprobar si existe valor en BD con php

Cita:
Iniciado por Heli0s Ver Mensaje
Se pueden aplicar ambas, de todos modos si eliges una yo usaría PHP ya que te permite mostrar el error fácilmente.
Con mysql es igual de fácil, sólo es llamar mysql_error y listo

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #7 (permalink)  
Antiguo 13/04/2010, 11:14
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: comprobar si existe valor en BD con php

Pero ese es el error que devuelve MySQL, no es un error personalizable al menos que uses mysql_errno(), busques que numero de error es el que devuelve en ese caso, y lo compares.


Un saludo
  #8 (permalink)  
Antiguo 13/04/2010, 11:50
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: comprobar si existe valor en BD con php

Si entiendo los pros, pero me decanto por PHP

Etiquetas: bd, comprobar, existe
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 11:50.