Foros del Web » Programando para Internet » PHP »

Update en Mysql

Estas en el tema de Update en Mysql en el foro de PHP en Foros del Web. Genero la lista de imagenes de una carpeta, luego intento insertarlas en una base de datos (lo nombres) Todo muy bien hasta ahí, el problema ...
  #1 (permalink)  
Antiguo 09/04/2004, 03:08
 
Fecha de Ingreso: noviembre-2003
Mensajes: 114
Antigüedad: 20 años, 5 meses
Puntos: 0
Update en Mysql

Genero la lista de imagenes de una carpeta,

luego intento insertarlas en una base de datos (lo nombres)

Todo muy bien hasta ahí, el problema esta en actualizarlas, ya que cuando ingreso de nuevo a la página (ejecuto el script) se insertar nuevos registros en la base de datos.

o sea las mismas imágenes con distintos ids.

¿Hay alguna forma de verificar si existe dicha imagen (nombre de campo de bd) y si no existe insertar el nuevo registro, pero si es lo contrario que no inserte nada, que es lo que no está sucediendo.?


Código PHP:
mysql_db_query("BASEDEDATOS","INSERT INTO TABLA_IMAGENES (id_imagen,archivo) VALUES (NULL,'".$imegenes."')"); 
le he puesto where, where not, etc pero nada.
__________________
Soporte y Creaciones PHP-Nuke:
NukeProjects.Net

if($Necesitas=="Ayuda"){
echo "No dudes en pedirla";
}
  #2 (permalink)  
Antiguo 09/04/2004, 03:13
 
Fecha de Ingreso: octubre-2003
Mensajes: 153
Antigüedad: 20 años, 6 meses
Puntos: 5
autoincrement

Seguramente tengas el id como autoinccrement. Si lo tienes asi haz de recordar que la clave primaria sirve para distinguir un registro de otro. Si cada vez que insertas, se autoincrementa, evidentemente estás metiendo un registro nuevo. ¿Formas de solucionarlo?, unas cuantas. Una solución sería colocar un el campo archivo_imagen como único. Otra solución sería hacer una consulta previa para ver si está ya insertado en la base de datos dicho archivo. Sería algo así

$sql= SELECT * from TABLA where archivo_imagen='$archivo_imagen'
$resultado=mysql_query($sql);
y luego consultar

If (mysql_num_rows($resultado)==1) //Es porque ya existe en la base de datos

etc

Espero haberte servido de aydua
  #3 (permalink)  
Antiguo 09/04/2004, 12:47
 
Fecha de Ingreso: noviembre-2003
Mensajes: 114
Antigüedad: 20 años, 5 meses
Puntos: 0
lo de la colsulta esta claro pero no serviria si de todos modos seguira insertandolas,

voy a probar con el de único
__________________
Soporte y Creaciones PHP-Nuke:
NukeProjects.Net

if($Necesitas=="Ayuda"){
echo "No dudes en pedirla";
}
  #4 (permalink)  
Antiguo 09/04/2004, 17:18
 
Fecha de Ingreso: octubre-2003
Mensajes: 153
Antigüedad: 20 años, 6 meses
Puntos: 5
¿sirvió?
  #5 (permalink)  
Antiguo 09/04/2004, 20:19
 
Fecha de Ingreso: noviembre-2003
Mensajes: 114
Antigüedad: 20 años, 5 meses
Puntos: 0
claro que no, ¿de donde sacas eso de único?
__________________
Soporte y Creaciones PHP-Nuke:
NukeProjects.Net

if($Necesitas=="Ayuda"){
echo "No dudes en pedirla";
}
  #6 (permalink)  
Antiguo 10/04/2004, 03:19
 
Fecha de Ingreso: octubre-2003
Mensajes: 153
Antigüedad: 20 años, 6 meses
Puntos: 5
Pues cuando te creas la base de datos, uno de los atributos es UNIQUE. está el NOT NULL, PRIMARY KEY etc etc. Pues lo de unico es el atributo UNIQUE.
  #7 (permalink)  
Antiguo 10/04/2004, 16:27
 
Fecha de Ingreso: noviembre-2003
Mensajes: 114
Antigüedad: 20 años, 5 meses
Puntos: 0
NO LO VEO
__________________
Soporte y Creaciones PHP-Nuke:
NukeProjects.Net

if($Necesitas=="Ayuda"){
echo "No dudes en pedirla";
}
  #8 (permalink)  
Antiguo 10/04/2004, 16:34
 
Fecha de Ingreso: octubre-2003
Mensajes: 153
Antigüedad: 20 años, 6 meses
Puntos: 5
¬¬. DJ-Dom, no se si será la solución pero te aseguro que el mysql al igual que postgres u oracle, tienen la opción de marcar un atributo como Unique. No se si será la solución a tu problema pero existir si que existe dicho atributo, y sino que se pase un moderador y lo confirme. Siento no poder ayudarte más.
  #9 (permalink)  
Antiguo 11/04/2004, 02:19
 
Fecha de Ingreso: noviembre-2003
Mensajes: 114
Antigüedad: 20 años, 5 meses
Puntos: 0
VARCHAR

TINYINT

TEXT

DATE

SMALLINT

MEDIUMINT

INT

BIGINT

FLOAT

DOUBLE

DECIMAL

DATETIME

TIMESTAMP

TIME

YEAR

CHAR

TINYBLOB

TINYTEXT

BLOB

MEDIUMBLOB

MEDIUMTEXT

LONGBLOG

LONGTEXT

ENUM

SET


Y NADA MAS.
__________________
Soporte y Creaciones PHP-Nuke:
NukeProjects.Net

if($Necesitas=="Ayuda"){
echo "No dudes en pedirla";
}
  #10 (permalink)  
Antiguo 11/04/2004, 02:26
 
Fecha de Ingreso: octubre-2003
Mensajes: 153
Antigüedad: 20 años, 6 meses
Puntos: 5
Perdón pero te estás confundiendo. Eso son tipos de datos. Yo te digo atributos:

BINARY

NOT NULL

AUTOINCREMENT

ZEROFILL

UNSIGNED

PRIMARY

INDEX

UNIQUE <<<<------------ ESTE!!!!!!!!!!!!!
  #11 (permalink)  
Antiguo 13/04/2004, 18:54
 
Fecha de Ingreso: noviembre-2003
Mensajes: 114
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias, pero sera manualmente, porque mi phpmyadmin no me da dicha opcion, pero si se lo aplico desde un archivo sql talvez si que vaya, voy a intentarlo.
__________________
Soporte y Creaciones PHP-Nuke:
NukeProjects.Net

if($Necesitas=="Ayuda"){
echo "No dudes en pedirla";
}
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 14:58.