Comunidad de diseño web y desarrollo en internet online

Ir a Perfil de Usuario clicando en su foto

Citar            
MensajeEscrito el 15 Abr 2010 11:41 pm
Hola a todos los foreros de Cristalab, realmente no tengo mucha experiencia en Php pero estoy haciendo un esfuerzo casi sobrehumano en desarrollar un sistema de usuarios en php y poco a poco lo estoy logrando (llevo 2 meses jejeje).. me explico, es un sistema de usuarios tipico con sus bases de datos (uso phpmyadmin) su formulario de registro, area de usuario para logearse, todo esto ya esta funciona perfectamente, en mi index.php visualizo los ultimas fotos añadidas, los ultimos usuarios registrados, links para registrarse o iniciar sesion etc.. al ingresar mi usuario y password, sale mi foto de perfil y demas datos, luego hay un menu de usuario una de las opciones es (ver mi perfil) que tambien funciona y me muestra mis fotos (las q subi yo) aparte de la de mi perfil y demas datos de usuario pero me he atascado en algo q quiero hacer y no puedo.. que al clickar en una foto de los ultimos usuarios registrados me envie a otra pagina y me muestre su perfil de usuario (tal y como visualizo el mio) claro esta que estas fotos las cojo de la base de datos y las imprimo en pantalla.. espero me haya explicado y mas espero que los "genios de por aqui" en php que hay unos cuantos me puedan ayudar, de antemano muchas gracias a todos(as).

Por cesarobcn

11 de clabLevel



 

Perú/Barcelona-Spain

msie8
Citar            
MensajeEscrito el 16 Abr 2010 02:34 am
Si agregas un campo a la base de datos con el cual ligue la foto a la direccion del perfil del usuario y con php lo interpretas con alguna condicional (if) para que segun la imagen cargada tambien cargue el link.

Segun lo que escribiste supongo que ya sabes como hacer las consultas y usar los resultados, me imagino tienes un campo con la direccion de la foto "directorio_raiz/subdirectorios/imagenes/imagen.formato" o algo similar y lo usas algo asi:

Código :

$r = mysql_fetch_row($result) /*o la BD que uses, mi caso mysql*/
echo "<img src=".$r[numero_de_campo_de_la_imagen].">"


complementalo con esto

Código :

$r = mysql_fetch_row($result)
$r[numero_de_campo_de_la_imagen];
$r[numero_de_campo_del_url_del_usuario];
echo "<a href=".$r[numero_de_campo_del_url_del_usuario]."><img src=".$r[numero_de_campo_de_la_imagen."></a>";


espero averme dado a entender, cualquier duda no dudes en hacerla.

Suerte. :)

Por D@rB

38 de clabLevel



Genero:Masculino  

GDL Mx

chrome
Citar            
MensajeEscrito el 16 Abr 2010 04:34 pm
Hola amigo.. gracias por responder, no entendi muy bien lo que me dices..te dejo mas informacion y la estructura de la base de datos para que entiendas mejor la idea:
tabla : usuario_foto_perfil
************************************
id auto increment int (4)
username char (15)
foto_name char (50)

Despues tengo otras tablas que son:
usuario_key (id, username, passwd, email)
usuario_datos (id, username, nombre, apellido, pais, ciudad, fecha_nac, condicion, promocion, telefono)
usuario_fechas(id, username, fecha_inscrip, fecha_ult_visita)
usuario_fotos(id, username, foto_titulo, foto_name) --> para otras fotos aparte de la del perfil.

Solo podran ver los perfiles de otros usuarios los usuarios logueados y el codigo para visualizar los 4 ultimos usuarios registrados en el index.php.. en realidad es una funcion es este:

Código :

function display_ultimos_usuarios()
{
include ("config_db.php");

$link=mysql_connect($serverDB,$userDB,$passwdDB);

$query = sprintf("SELECT usuario_foto_perfil.foto_name FROM usuario_foto_perfil order by id desc LIMIT 0,4");
$query1 = sprintf("SELECT usuario_datos.apellido FROM usuario_datos order by id desc LIMIT 0,4");

$result = mysql_db_query($databasename,$query,$link);
$result1 = mysql_db_query($databasename,$query1,$link);

<table width="430">
   <td>
      <tr>
      <?php
      while($array = mysql_fetch_array($result))
      { 
      ?>
         <img src="users/imgs_perfil/
         <?php
            echo $array['foto_name'];
         ?>"
         width='102' height='80' align="middle"/>
      <?php
      }
      ?>
      </tr>
      <tr class="form_login">
      <div align="center">
      <?php
      while($array = mysql_fetch_array($result1))
      { 
      ?>
      <?php
          echo $array['apellido']; 
      ?>
      <?php
      }
      ?>
      </div>
      </tr>
   </td>
</table>
<?php
mysql_free_result($result);
}


Dejo el codigo integro por si acaso le sirva a alguien, a mi me tomo mucho esfuerzo ya que no tengo mucha experiencia en Php pero con la ayuda de "Mr. Google" y la experiencia de muchos programadores como tu lo logré, pero ahora estoy "atascaaaadoooo!!!!" jajaja.. necesito que al clicar en una de las fotos de perfil me enlace con su perfil integro, tal como visualiza el perfil del usuario logueado.. algo asi como esto:

<a href='/miur/verperfil.php?id=<?=$infoperfil['id'] ; ?>'><img src='urldemiimagen.jpg'></a>

Pero no se por donde empezar.. como hago para almacenar en la variable $infoperfil todos los datos de todas las tablas?? para que luego aparesca en la url algo asi como http://localhost/MiWeb/verperfil.php?id=21

espero puedan ayudarme y poner su granito de arena en este proyecto.. gracias.

Por cesarobcn

11 de clabLevel



 

Perú/Barcelona-Spain

msie8
Citar            
MensajeEscrito el 17 Abr 2010 05:14 am
Tienes muchas tablas que imagino aplican para todos los usuarios, osea, cada usuario tiene 1 registro en cada tabla. Y en cada tabla tienes un ID, ese ID es el mismo en todas las talas para un usario? osea, si mi user es 'D@rB' y mi Id en la tabla usuario_key es '5', ¿en las demas todas las demas tablas el ID para el user 'D@rB' siempre es '5'??. Y si no lo es, ¿El ID de que tabla es el que ubicas en el URL?, en calquier caso, ¿tus tablas tienen llaves foraneas entre si?¿el ID o el username'.
Haz oido hablar del INNER JOIN? Sirve para "unir" resultados de varias tablas, por ejemplo, en tu codigo haces una consulta doble, a dos tablas, pero de forma independiente, podrias hacer eso en una sola consulta, seria algo asi:

Código :

 SELECT usuario_foto_perfil.foto_name,usuario_datos.apellido FROM usuario_foto_perfil inner join usuario_datos on usuario_foto_perfil.username=usuario_datos.username order by id desc LIMIT 0,4;


Y con eso te ahorras una consulta y optimizas tu sistema, y se implementaria algo asi:

Código :

query = sprintf("SELECT usuario_foto_perfil.foto_name,usuario_datos.apellido 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);


Suponiendo que el id para la url sea el de la tabla "usuario_key" podrias hacer algo similar a esto:

Código :

 SELECT usuario_key.id,usuario_foto_perfil.foto_name,usuario_datos.apellido FROM (usuario_foto_perfil inner join usuario_datos on usuario_foto_perfil.username=usuario_datos.username) inner join usuario_key on usuario_key.username=usuario_datos.username order by id desc LIMIT 0,4;

Y ya podrias hacer algo como lo que quieres:
<a href='/miur/verperfil.php?id=<?=$infoperfil['id'] ; ?>'><img src='urldemiimagen.jpg'></a>

De momento no comprendo bien porque lo de los Array, yo no los eh usado practicamente, asi que no sabria decirte muy bien como debes de usarlo, pero si te funcionan bien, creo que no tendras problema tratando de integrar todo.

Espero haberme dado a entender ahora si, la vez anterior pense que tenias todo en la misma tabal y que el enlace al perfil del usuario era algo mas estatico (www.sitio.com/usarios/username.php o www.username.sitio.com) pero ahora veo que no.

Espero te sirva y si no, o cualquier duda, vuelve a preguntar, hasta que se solucione.
PD. si haces copy-paste el codigo existe el riesgo de que alguna cosa no funcione bien ya que pude aver escrito algo mal y no me di cuenta y se me paso o algo, as que te recomiendo comprenderlo, te servira mucho lo del join, y no hay limite entre el numero de tablas a usar (hasta donde yo se)

Suerte :)

Por D@rB

38 de clabLevel



Genero:Masculino  

GDL Mx

chrome
Citar            
MensajeEscrito el 17 Abr 2010 04:19 pm
Hola D@rB ante todo gracias por tu tiempo en revisar mi codigo y en darme la idea de utilizar INNER JOIN pero tengo un problema que quiero solucionar antes de pasar al primer tema que esta aun en el aire.. e puesto el codigo que me sugeriste y quedo asi..

Código :

function display_ultimos_usuarios()
{
include ("config_db.php");
$link=mysql_connect($serverDB,$userDB,$passwdDB);

$query = sprintf("SELECT usuario_foto_perfil.foto_name, usuario_datos.apellido
   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("Error en <br>MySQL dice: ".mysql_error());  

?>
<table width="430">
   <td>
      <tr>
      <?php
      while($array = mysql_fetch_array($result))
      { 
      ?>
         <img src="users/imgs_perfil/
         <?php
            echo $array['foto_name'];
         ?>"
         width='102' height='80' align="middle"/>
      <?php
      }
      ?>
      </tr>
      <tr class="form_login">
      <div align="center">
      <?php
      while($array = mysql_fetch_array($result))
      { 
      ?>
      <?php
          echo $array['apellido']; 
      ?>
      <?php
      }
      ?>
      </div>
      </tr>
   </td>
</table>

Pero tengo un problema en la parte donde tiene que visualizar las 4 ultimas fotos de perfiles registrados este error..
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:/Servidor/../.../nombredearchivo.php on line 892
lo que me llevo a poner el or die..mysql_error() en la linea donde $result coge los datos..
y me da como error esto: Column 'id' in order clause is ambiguous llevo un par de horitas por el google buscando alguna solucion pero no encuentro nada que me sirva.. quizas tenga que replantearme el diseño de mis bases de datos??..que me sugieres..
Por otro lado cuando un usuario se registra en la Web mediante un formulario al enviar los datos, estos se "distribuyen" en todas las tablas en una se almacena la fecha de registro, en otra los datos, en otra la foto de perfil (si es que ha subido una) si no se almacena un "avatar" y en otra el password y email (hice esto último para cuando tenga q enviar por email al usuario su password y usuario en caso de olvido).. en todas las tablas se almacena el mismo 'username' por eso el mismo usuario (username)tiene el mismo 'id'.. luego hay otra tabla que es 'usuario_fotos' que almacena las fotos que un usuario registrado y logueado 'sube al servidor' puede tener tantas como desee y estas las recupero luego mediante su 'username' ..te explico esto para que mas o menos tengas una idea de lo que pretendo, soy un poco novato en Php pero como soy 'cabezon' jejeje no me rindo asi porque si.. si tienes alguna sugerencia o si crees q tengo que rediseñar mis BD's soy todo oidos.. otra vez D@rB muchas gracias por tu valioso tiempo... y si hay alguien mas por aqui que me quiere hechar una mano.. ¡¡BiEnVeNiDo :)

Por cesarobcn

11 de clabLevel



 

Perú/Barcelona-Spain

msie8
Citar            
MensajeEscrito el 17 Abr 2010 05:34 pm
Solucionado!!! indage un poquito mas y me encontre con un post que me dio una idea... el script no sabia de cual de las dos tablas coger el id.. al final quedo asi :

Código :

function display_ultimos_usuarios()
{
include ("config_db.php");

$link=mysql_connect($serverDB,$userDB,$passwdDB);

$query = sprintf("SELECT usuario_foto_perfil.id, 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());  
?>
<table width="430">
   <tr>
      <?php
      while($array = mysql_fetch_array($result))
      { 
      ?>
      <tr>
       <td>
         <img src="users/imgs_perfil/
         <?php
            echo $array['foto_name'];
         ?>"
         width='102' align="middle"/>      
        <td>
           <?php
            echo $array['apellido']."<br>";
            echo $array['promocion'];
         ?>
        </td>
      </td>
      </tr>
      <?php
      }
      ?>
   </tr>   
</table>
<?php
mysql_free_result($result);
}


Mejor de lo que esperaba.. ahora incluso puedo poner mas info al lado de la foto :) estuvo bien tu idea de JOIN no se me había ocurrido.. ahora solo me queda lo de hacer "linkeable" la foto.. dame alguna idea porfa.. no tengo idea de como hacer para q al clickar la foto o el apellido me lleve a "otra pagina" donde en la Url aparezca algo asi como (http://localhost/MiWeb/index.php?id=11)y me visualize su Perfil de Usuario, tal y como lo ve uno registrado y logueado.. y comentame sobre las BD's tengo demasiadas? debo unir algunas?.. perdona por tantas preguntas y gracias otra vez...

Por cesarobcn

11 de clabLevel



 

Perú/Barcelona-Spain

msie8
Citar            
MensajeEscrito el 17 Abr 2010 09:06 pm
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 xD, 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 xD, espero le entiendas :)

Suerte en tu proyecto, y mas dudas hazlas sin miedo. :)

Por D@rB

38 de clabLevel



Genero:Masculino  

GDL Mx

chrome
Citar            
MensajeEscrito el 18 Abr 2010 09:01 am
Hola D@rB gracias por tus respuestas son realmente interesantes, lo que me dices ya lo habia pensado, es mas lo he hecho pero de otra manera.. con "MKDIR" he creado una carpeta para cada usuario registrado correctamente.. osea que si se rellena correctamente el usuario ed registro al enviar la informacion luego de almacenarse en las BD's se crea una carpeta con el nombre del 'username' que nunca se repetira.. osea en la url quedaria algo asi como (localhost://MiWeb/members/username/) q visualizaria su perfil seria otra opcion a(localhost://MiWeb/index.php?=id..) espero haberme explicado, esta web si saldra "al aire" cuando pueda.. pero no tendra mucho trafico ni mucho menos será como esta jejeje... si un dia lo logro haber si te pongo en los "creditos" jajaja.. ahora no tengo tiempo para mas, voy al curro un saludo.

Por cesarobcn

11 de clabLevel



 

Perú/Barcelona-Spain

msie8
Citar            
MensajeEscrito el 18 Abr 2010 06:11 pm
La forma (localhost://MiWeb/members/username/) es lo mas facil y eso no tiene complicacion, de la forma (localhost://MiWeb/index.php?=id..) si esta bastante mas complicado, porque habria que "partir" el index y en la parte principal seria hacer que carge el perfil, y para ello el index del perfil tendria que ser de tama#o especial para que quede bien. Actualmente me encuentro desarrollando una pagina que tuve hacer algo asi, partir el index y crear los demas arcivos html de una forma especial, lo que fue algo complicado hacer coincidir tama;os, quizas entre lunes y martes lo subo al dominio del cliente que lo encargo para que veas como quedaria cada paguina indivudualmente, siempre y cuando logre hacer que se visualize bien en IExplore, si no tendre que volver a hacerlo de otra forma.

La idea de hacerlo (localhost://MiWeb/index.php?=id..) la sacaste de alguna otra web? o alguien te la sugirio? o idea tuya? si la viste en alguna web pasas el URL para ver mas o menos como esta implementado.

Saludos :)

Por D@rB

38 de clabLevel



Genero:Masculino  

GDL Mx

chrome
Citar            
MensajeEscrito el 18 Abr 2010 06:23 pm

Por D@rB

38 de clabLevel



Genero:Masculino  

GDL Mx

chrome
Citar            
MensajeEscrito el 18 Abr 2010 09:13 pm
Te dejo el link de otro foro q estoy siguiendo http://www.lawebdelprogramador.com/news/new.php?id=71&texto=PHP aqui ves el tipo .php?id=... pero la opcion (localhost://MiWeb/members/username/) me esta gustando mas, me parece menos complicada, estaba pensando en guardar en cada carpeta de usuario creada algo asi como un perfil.php que se encarge de cargar sus datos.. pero como cogo los datos de las BD's para ese usuario??, bueno basta por ahora tengo la cabeza muy caliente jejeje.. desconectando.... pero mañana revisare bien el link q me enviaste haber q tal gracias por estar por aqui D@rB :) :)

Por cesarobcn

11 de clabLevel



 

Perú/Barcelona-Spain

msie8
Citar            
MensajeEscrito el 19 Abr 2010 03:33 pm
Ok D@rB lo estoy cogiendo llevo desde la mañana en esto y parece q valdrá la pena :wink: ^^ el codigo al final quedo asi, te lo dejo por si acaso te sirva:

Código :

function display_ultimos_usuarios()
{
include ("config_db.php");

$link=mysql_connect($serverDB,$userDB,$passwdDB);

$query = sprintf("SELECT usuario_foto_perfil.id, 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());  
?>
<table width="430">
   <tr>
      <?php
      while($array = mysql_fetch_array($result))
      { 
      ?>
      <tr>
       <td>
         <a href="profile_members.php?id=<?php echo $array['id']?>"><img src="users/imgs_perfil/
         <?php
            echo $array['foto_name'];
         ?>"
         width='102' align="middle"/>
         </a>      
        <td>
           <?php
            echo $array['apellido']."<br>";
            echo $array['promocion'];
         ?>
        </td>
      </td>
      </tr>
      <?php
      }
      ?>
   </tr>   
</table>
<?php
mysql_free_result($result);
}


He creado un profile_members.php que sera un archivo comun para todos los perfiles de usuario menos para el usuario actual logueado, cuando la foto me linkee a este archivo con un $_GET cojo la 'id' la asigo a una variable ($id_user) luego con el SELECT.. WHERE busco el registro para 'id'=$id_user mas o menos quedaria asi:
profile_members.php

Código :

..
..
$id_user=$_GET['id'];
      
include ("archivos_php/config_db.php");
$link=mysql_connect($serverDB,$userDB,$passwdDB);
      
$query = "SELECT * FROM usuario_datos, usuario_fechas, usuario_foto_perfil, usuario_key, usuario_fotos  
              WHERE usuario_key.id=".$id_user;
$resultado = mysql_db_query($databasename,$query,$link) or die (mysql_error());

while($array = mysql_fetch_array($resultado))
      {
      echo $id_user; //linea para verificar id
      echo "<span class='VerMas'>".$array['condicion']."</span><br/>";
      echo "<span class='VerMas'> ".$array['promocion']."</span><br/><br/>";
      echo "País de Residencia : <span class='form_registro'>".$array['pais']."</span><br/>";
      echo "Ciudad :<span class='form_registro'> ".$array['ciudad']."</span><br/>";
      echo "Telefono :<span class='form_registro'> ".$array['telefono']."</span><br/>";
      echo "Miembro desde :<span class='form_registro'> ".$array['fecha_inscrip']."</span><br/>";
      echo "Ultima visita :<span class='form_registro'> ".$array['fecha_ult_visita']."</span><br/>";
      }
..
..


De momento funciona, que era el objetivo, solo que la linea del ($query = "SELECT * FROM usuario_datos, usuario_fechas, ... WHERE usuario_key.id=".$id_user) no creo q este bien, aun estoy haciendo pruebas haber si INNER JOIN me hecha otro cable jejeje.. sino no me quedara otra cosa que plantearme unir mis BD's porque para visualizar la info del usuario tengo que sacar datos de 5 BD's q me recomendarias?? ya estoy cercaaa :)

Por cesarobcn

11 de clabLevel



 

Perú/Barcelona-Spain

msie8
Citar            
MensajeEscrito el 19 Abr 2010 05:32 pm
Lo tengo!!! :) :wink: te dejo el codigo del profile_members.php

Código :

<?php
require_once("archivos_php/web_cmprg_fns.php");
session_start();
do_html_header("Pagina de Miembros - CMPRG");
check_valid_user(); // chequea si el usuario esta correctamente logeado

$id_user=$_GET['id'];
      
include ("archivos_php/config_db.php");
$link=mysql_connect($serverDB,$userDB,$passwdDB);

$query = "SELECT * FROM usuario_datos INNER JOIN usuario_foto_perfil WHERE usuario_datos.id=".$id_user."
      && usuario_foto_perfil.id=".$id_user;
$resultado = mysql_db_query($databasename,$query,$link) or die (mysql_error());
$array = mysql_fetch_array($resultado);
?>
<link href="estilos_css/Estilos_MiWeb.css" rel="stylesheet" type="text/css">
<body id="body">
<div id="contenedor">
<!-- ********************* Menu Pincipal ***************************-->
<div id="menuPrincipal">
   <?php
   display_menu_principal_usuario();
   ?>
</div>
<codigo...........
.....................
.....................>
<div id="SeccionLeft">
      <br/>
      <?php
      echo $array['nombre']."<br/> ".$array['apellido']."<br/>";
      ?>
   </div>

   <div id="SeccionLeft">
      <img src="users/imgs_perfil/
      <?php
         echo $array['foto_name'];
      ?>" 
      width='200' align="middle"/>
   </div>
......
......
<!-- *********************Contenido ***************************-->   
   <div id="contenido">
      <div id="menu_user">
         <?php
         display_menu_usuario();
         ?>
      </div>
      <div id="seccion_contenido">
      <h5>Perfil de Usuario</h5>
      <?php
      echo "<span class='VerMas'>".$array['nombre']."</span><br/>";
      echo "<span class='VerMas'> ".$array['apellido']."</span><br/><br/>";
      echo "<span class='VerMas'>".$array['condicion']."</span><br/>";
      echo "<span class='VerMas'> ".$array['promocion']."</span><br/><br/>";
      echo "País de Residencia : <span class='form_registro'>".$array['pais']."</span><br/>";
      echo "Ciudad :<span class='form_registro'> ".$array['ciudad']."</span><br/>";
      echo "Telefono :<span class='form_registro'> ".$array['telefono']."</span><br/>";
      echo "Miembro desde :<span class='form_registro'> ".$array['fecha_inscrip']."</span><br/>";
      echo "Ultima visita :<span class='form_registro'> ".$array['fecha_ult_visita']."</span><br/>";
       ?>

Al final uni las BD's ahora solo tengo tres:
*usuario_datos
*usuario_foto_perfil
*usuario_fotos
Funciona perfectamente, pero aún asi si tienes alguna sugerencia me la dices.. ahora tengo que mirar lo de calcular la edad del usuario basandose en la fecha_nac y la actual y hacer que cada vez que el usuario se loguee correctamente se cambie la fecha_ult_visita, pero eso sera mañana, ahora me toca tomarme dos cañitas q para eso es mi dia de fiesta y me he pasado casi todo el dia en el ordenador jejeje.. bueno D@rB muchas gracias por echarme tantos cables :) :)

Por cesarobcn

11 de clabLevel



 

Perú/Barcelona-Spain

msie8
Citar            
MensajeEscrito el 20 Abr 2010 03:06 am
Felicidades por tu dia de fiesta y tu logro (tu dia de fiesta es algo asi com tu cumpleaños o tu "santo"?)
Se ve bien, solo un par de observaciones, en:

Código :

$query = "SELECT * FROM usuario_datos INNER JOIN usuario_foto_perfil WHERE usuario_datos.id=".$id_user."
      && usuario_foto_perfil.id=".$id_user;

usas un and en el WHERE porque? si el $id_user es el mismo siempre para las 2 tablas creo que no tiene mucho caso.

2° comentario.
Al final uni las BD's ahora solo tengo tres:
Al decir DB creo que te refieres a las tablas dentro de una base de datos, cierto? si es el caso seria buena idea que te hicieras de la costumbre de decir tablas y no BD, si podria confundirse

y 3° comentario. Una disculpa por ausentarme 2 dias :), me la pase casi tiempo completo(unas 9-13 horas) en la escuela y por alguna extraña razon alla no carga esta pagina, solo me marca un error de timeout, asi que no pude estar revisando

y un ultimo 4° comentario.
me he pasado casi todo el dia en el ordenador
Asi es este mundo de los ordenadores, recuerdo que sali el año viejo (2009-2010) programando, casi hasta la 1 am del año nuevo xD.

Felicidades una vez mas, y cualquier cosa aqui sigo, Suerte :)

Por D@rB

38 de clabLevel



Genero:Masculino  

GDL Mx

chrome
Citar            
MensajeEscrito el 20 Abr 2010 08:54 am
Hola D@rB es que pensaba q estabas aqui (en España) de donde eres? el dia de "fiesta" se llama comunmente al dia libre en el "curro"- trabajo es decir "El lunes tengo fiesta.." el lunes es mi dia de descanso.. es verdad lo del "and" revisare eso, haber si funciona igual, solo queria asegurarme un posible "error" en las tablas asi me aseguraria cargar el mismo 'id'de las dos tablas.. a proposito tienes razon mas vale llamar cada cosa por su nombre al decir BD's queria decir Tablas no se porque pero siempre me pasa es totalmente diferente, gracias otra vez por tu tiempo, no tienes porque disculparte.

Por cesarobcn

11 de clabLevel



 

Perú/Barcelona-Spain

msie8
Citar            
MensajeEscrito el 20 Abr 2010 11:40 pm
Soy de mexico xD, aunque estoy algo familiarizado con regionalismos de otros pais (principalmente latinoamerica) no me le encontraba significado a esa frase xD, la de curro si la conocia ya.

Pues si hay algo mas en que pueda ayudarte aqui sigo :)
Saludos

Por D@rB

38 de clabLevel



Genero:Masculino  

GDL Mx

chrome
Citar            
MensajeEscrito el 21 Abr 2010 08:55 am
Ok D@rB yo soy de PErú pero vivo desde 2001 en Barcelona - España.. lo del calculo de la edad ya esta (no fue nada comparado con lo de antes :) ahora.. otro reto, hacer que un usuario logueado deje un comentario en el perfil de otro.. osea habrá una seccion "Dejame un Comentario.." habrá una pequeña caja de texto como la de este foro, un boton enviar comentario, supongo q debo hacer otra Tabla estaba a punto de escribir "otra BD.." jejeje, pero bueno ya tengo un par de manuales por alli q debo leer detenidamente eso sera esta tarde ahora a "currar.." si has hecho algo parecido, dame una idea porfa, ya te dire algo si tengo problemas con el codigo..gracias por seguir alli :)

Por cesarobcn

11 de clabLevel



 

Perú/Barcelona-Spain

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.