Que bien que ya te haya funcionado el inner join, pese a que seguimos en el mismo problema original ya aprendiste a solucionar uno q no existia
, eso es bueno, felicidades.
Si unes algunas tablas te ahorrarias los INNER JOIN y alguno que otro dolor de cabeza con ellos, pero como tu veas, aunque si tu proyecto es algo muy grande (no tanto como es este foro, pero si algo que vaya a salir mas alla de tu localhost)o con bastante trafico quizas si seria buena idea que las fusiones para evitar que el sistema colapse por sobrecarga, pero si no es el caso no afecta, siempre puedes hacer JOIN`s con el username.
Retomando el problema original, yo habia pensado desde el principio en algo asi:
En tu localhost podria estar organizado de esta forma
localhost/ = la pag home o el index
localhost/perfiles-de-usuarios = el directorio donde tienes guardados todos los perfiles e informacion del usuario
localhost/perfiles-de-usuarios/mi-usuario = el directorio donde tendria mi perfil y paralelo a este los demas usuarios ('localhost/perfiles-de-usuarios/usuario1','localhost/perfiles-de-usuarios/usuario2',etc)
En tu BD, en alguna de tus tablas podrias tener el nombre de la carpeta del usuario.
O si el nombre de dicha carpeta es el mismo que el username es aun mas facil, ya que lo unico que ocupas es al SELECT que estas haciendo agregarle el campo username de cualquiera de las tablas y al momento de que aplicas el reultado a la etiqueta de la imagen tambien puedes agregarle el atributo a <a>
Creo que no me di a entender muy bien, asi que pongo un codigo como ejemplo para que te des una mejor idea
Código :
$query = sprintf("SELECT usuario_foto_perfil.id, usuario_datos.username,
usuario_foto_perfil.foto_name,
usuario_datos.apellido, usuario_datos.promocion
FROM usuario_foto_perfil INNER JOIN usuario_datos ON
usuario_foto_perfil.username = usuario_datos.username order by id desc LIMIT 0,4");
$result = mysql_db_query($databasename,$query,$link) or die (mysql_error());
Código :
<table width="430">
<tr>
<?php
while($array = mysql_fetch_array($result))
{
?>
<tr>
<td>
<a href="http://localhost/perfiles-de-usuarios/<?php
echo $array['username'];
?>"><img src="users/imgs_perfil/
<?php
echo $array['foto_name'];
?>"</a>
width='102' align="middle"/>
<td>
<?php
echo $array['apellido']."<br>";
echo $array['promocion'];
?>
</td>
</td>
</tr>
<?php
}
?>
</tr>
</table>
Si lo que quieres es que afuerzas sea algo asi(http://localhost/MiWeb/index.php?id=11)
entonces tendrias que usar algo similar a frames o alguna similar (he leido de que ajax funciona bn, pero personalmente nunca le eh utilizado, en otro post del foro vi que recomendaban esto
http://www.cristalab.com/tutoriales/ajax-en-jquery-c226l/ como sustituto a los frames) y con eso podrias hacer algo asi
Código :
/*Esto va en el archivo que tiene el enlace, donde tienes la foto ya cargada*/
<a href="http://localhost/index?id=<?php
echo $array['id'];
?>"><img src="users/imgs_perfil/
<?php
echo $array['foto_name'];
?>"</a>
/*para esto entonces se supondria que la BD la tienes similar al caso anterior, solo que en vez del username para nombre de la carpate del perfil, tendrias uno de los ID (preferentement el de la misma tabla donde esta el password)*/
/* Esto lo tiene el archvio que es llamado, x ejemplo el index en donde empieza el frame*/
<?php
if($_GET['id']==11){
?>
<script language="JavaScript">
location.href='http://localhost/perfiles-de-usuarios/'id'/index.php';
</script>
<?php
}
?>
/*Esto deberia de ser cargado en el frame, por ejemplo, si todo es en el mismo index (la vizualizacion de las imagenes y del perfil posteriormente), aunque la verdad no estoy del todo seguro si funcione*/
Personalmente no lo recomendaria, no encuentro la ventaja, aunque si es lo que necesitas deberia ser algo asi, no exactamente como esta, ya que le deben de faltar variables y otras cosas,pero experimenta con ello.
De la primera forma que lo explique si estoy mas seguro que funcione, pero el enlace se veria algo asi (http://localhost/perfiles-de-usuarios/usuario/index.php') como usualmente se ve en los foros, ejemplo este.
Creo que hasta yo me hice bolas con la ultima parte, la pensare un poco mas y si encuentro alguna forma mas eficiente de darle solucion te la hare saber.
Ahora si me extendi
, espero le entiendas
Suerte en tu proyecto, y mas dudas hazlas sin miedo.