Lo que planteas está incompleto y mal programado, porque si vas a
insertar las imágenes en la tabla datos, es
obvio que el ID del usuario aún
no existe, y de todos modos si existiese el id_user alli, ¿para qué quieres leer las rutas y nombre de archivo, si lo que debes poner es NUEVO?
La verdad me cuesta un poco entender por qué razonas asi...
Vamos a ver el tema por partes:
1) Recuperas los datos a insertar del usuario que recibes de la interfaz (la vista o forumario de la web):
sin ese dato no puedes hacer nada.
2) Recuperas los datos del archivo:
Código PHP:
Ver original$desc=$_POST['descripcion'];
$rutaEnServidor='imagenes';
$rutaTemporal=$_FILES['imagen']['tmp_name'];
$nombreImagen=$_FILES['imagen']['name'];
$rutaDestino=$rutaEnServidor.'/'.$nombreImagen;
3) POnes todos los datos obligatorios:
Código PHP:
Ver original$sql = "INSERT INTO datos (usuario_id, ruta, archivo, descripcion) ";
$sql .= "VALUES($iduser, '$rutaDestino', '$nombreImagen', '$desc')";
4) Por sobre todas las cosas,
verificas correctamente lo que pasó en ese INSERT:
Código PHP:
Ver originalif ($res){
echo 'La imagen se guardó exitosamente.';
}else{
// NUNCA pongas un echo que diga cualquier cosa. PON LO QUE DEVUELVE LA BASE....
echo 'Error al insertar los datos en la base: '.mysql_error(); }
Este modelo es apra insertar las imagenes una a una, no para poner varias en un solo paso. Si las imagenes se reciben como un array, entonces el ciclo de toma de nombre, movimietno e inserción de las imagenes debe hacerse si dentro de un for o un while.
¿Se entiende?