este es un post que escribio P4blo, explica muy bien como hacerlo
Cita: En este ejemplo, se trabajara con upload de una imagen asociandola al id del usuario. El codigo es el siguiente:
//Recibo los datos que vienen por post
$archivo = $_FILES['campo']['name'];
//Insercion de los datos, ojo la imagen se graba con su nombre original en la tabla (es un campo varchar)
$sql_ins = "INSERT INTO avisos_img(texto,imagen) VALUES ('$nombre','$archivo')";
$res = mysql_query($sql_ins) or die ( "Error MySQL dice: " . mysql_error() );
//Ahora rescatar el id del registro insertado con la funcion mysql_insert_id()
$id = mysql_insert_id();
//Generar el nuevo nombre para la imagen, asociado con el id del registro, para luego moverla a su posicion final
$nuevo_nombre = ( string ) $id. "_" .$_FILES['file']['name'];
//Con la funcion move_uploaded_file mover el archivo a su posicion final, ojo con las rutas
move_uploaded_file($_FILES['file']['tmp_name'], "./avisos/".$nuevo_nombre );
Bueno de esta forma la imagen se almacena, por un lado, con su nombre original en la tabla, y por otro, con el id del registro + el nombre de la imagen. Por ejemplo si realizamos el proceso de insercion y realizamos el upload de una imagen cuyo nombre es "imagen1.gif" quedaria de la siguiente forma:
imagen1.gif => valor en el campo de la tabla, por ejemplo si el registro genero el id 1, la imagen quedaria almacenada en la ruta especificada con el nombre
1_imagen1.gif
De esta forma cuando realizemos la consulta de los datos para mostrar la imagen seria facil:
$sql = "SELECT * FROM usuarios"
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
//mostrar la imagen
<img src = "imagenes/<? echo $row['id']?>_<? echo $row['imagen']?>">
Eso seria, pero a esta explicacion se le deben agregar ciertas validaciones, para tener un algoritmo mas robusto.
Espero lo entiendan.-
Un saludo
P4blo.-----
teniendo en cuenta que:
"campo" es el nombre de tu campo que viene del form donde subes la imagen
$archivo = $_FILES['campo']['name'];
y ent esta linea donde dice /avisos/ es tu carpeta donde vas a guardar las imagenes en le servidor
move_uploaded_file($_FILES['file']['tmp_name'], "./avisos/".$nuevo_nombre );
muy bien explicado :)