Por empezar,
elimina los "@" de estas líneas: Código PHP:
$resultado = @move_uploaded_file($_FILES["imagen"]["tmp_name"], $ruta);
...
...
@mysql_query("INSERT INTO imagenes (imagen,usuario) VALUES ('$nombre', '$usuario')") ;
Esos "@" evitan que se muestren los mensajes de error que pueden estar ocurriendo, y es una
pésima practica de programación, en especial para gente que está aprendiendo.
Los errores
nunca se deben ocultar. Lo que hay que hacer es
resolverlos. Y para eso se necesita saber cuáles son los mensajes.
¿Se entiende?
Cita: Aclaro que yo se que no se suben los datos del nombre del usuario porque al fijarme en phpmyadmin, imagen, está completo, id tambien, y solo falta usuario. Que puede ser? Gracias.
Asumiendo que con eso que mencionas quieres decir que el registro se crea, pero no está el usuairo, la respuesta es simple: Al momento de crear y ejecutar la query, la variable $usuario está vacía... Así de simple.
La pregunta es en este punto, ¿por qué está vacía la variable? ¿ No llego el dato o se perdió en un momento dado?
Eso solo se puede saber analizando todo el proceso y el codigo para verificarlo.
De todos modos yo al menos haría esto:
Código PHP:
$qry = "INSERT INTO imagenes (imagen,usuario) VALUES ('$nombre', '$usuario')" ;
echo $qry;
$result = mysql_query($qry) ;
if($result)
echo "el archivo se registro en la base exitosamente";
} else {
echo "No se pudo registrar el archivo en la base: ".mysql_error();
}
Con el echo agregado al menos podrás saber si la query se está creando correctamente con todos sus datos o no.