OK, si entendí bien, quieres subir una foto de cada usuario. Me imagino que eso lo harás una sola vez, en el momento del registro del usuario. Para eso, en el mismo formulario de registro, agregas un campo tipo FILE, que te permita enviar el archivo de foto. Esto se hace poniendo el siguiente campo:
<input name="foto" type="file">
En el mismo formulario donde pones todos los otros datos del registro del usuario (nombre, email, sexo, etc.). Ahora, la foto tiene que ir a caer en algún directorio de tu servidor. Digamos que almacenas solamente una foto por usuario y usas para esas fotos un directorio llamado /fotos. Para que puedas enviar las fotos a ese directorio usando el formulario, necesitas tener permisos de escritura sobre ese directorio. Si estas usando windows, eso no debe ser problema. Si usas Linux o algún *NIX, debes asegurarte de tener permiso para escribir en ese directorio o el script no te funcionará.
Ahora, el lazo IF (el primero) comprueba que se haya subido el archivo al servidor. Normalmente, cuando subes un archivo, este no cae directamente en donde tu quieres, sino que se va al directorio temporal (depende del sistema). Por eso la función is_uploaded_file solo comprueba que haya llegado el archivo. El siguiente lazo comprueba que hayas podido copiar ese archivo temporal a su destino final usando la función COPY. Esta función recibe dos argumentos, separados por comas: el archivo que vas a copiar y hacia donde lo vas a copiar. Si tu directorio de destino se llama fotos, entonces la variable $uploaddir debe tener este valor:
$uploaddir = '/fotos';
y el nombre definitivo del archivo será:
$archivo = $uploaddir . "/" . $_FILES[$foto]['name'];
Por ejemplo, si tu foto se llama DSC001.JPG, ahora estará en /fotos/DSC001.JPG.
El siguiente paso es almacenar esa información en la base de datos. Ya sabes que la RUTA a tu foto esta almacenada en la variable $archivo. Entonces, en el mismo lugar de ese script en que envías los datos del usuario a la tabla cuando se esta registrando (nombre, email, sexo, etc.) también mandas la variable $archivo. Claro que para poder mandarla en la consulta, necesitas agregar en la tabla un campo para almacenar este valor (por ejemplo, campo FOTO VARCHAR 100).
Espero que te haya quedado un poco más claro.
lo hice solamente porque no sabía que era imposible...