Foros del Web » Programando para Internet » PHP »

Mostrar Información de Usuario en PHP

Estas en el tema de Mostrar Información de Usuario en PHP en el foro de PHP en Foros del Web. Hola a todos Mi problema es lo siguiente, cada usuario que se logea debe mostarse solo su informacion y no mostrar toda la informacion del ...
  #1 (permalink)  
Antiguo 02/02/2010, 12:11
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Mostrar Información de Usuario en PHP

Hola a todos

Mi problema es lo siguiente, cada usuario que se logea debe mostarse solo su informacion y no mostrar toda la informacion del resto de usuarios.

Voy a dejar 2 opciones a ver cual le es mas facil en que me puedan ayudar.

Si quito el
while (!$recordSet->EOF) {
Me muestra solo un ID del mismo Usuario pero este usuario tiene mas avisos ejemplo del usuario ADAN:

USUARIO ADAN
ID------NOMBRE--------CHAPA------AVISO---
1-------ADAN----------WEON-------POR CALIENTE


Aqui el codigo

OPCION 1
Código PHP:

<?
include_once('adodb/adodb.inc.php');
$ADODB_FETCH_MODE ADODB_FETCH_ASSOC;
$conn = &ADONewConnection('mysql');     
$conn->Connect($dbhost,$dbuser,$dbpass,$dbdatabase);
$sql "SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid ORDER BY AVISO.aid";
$recordSet = &$conn->Execute("$sql");

         while (!
$recordSet->EOF) {
        
//AVISO
         
$aid $recordSet->fields['aid'];
        
$uid $recordSet->fields['uid'];
        
$aviso $recordSet->fields['aviso'];
        
//USUARIOS
        
$sunombre $recordSet->fields['sunombre'];
        
$tuchaplin $recordSet->fields['tuchaplin'];        
 
echo 
"    <table width=90%>
        <tr valign=top>
        <td>ID</td>
        <td>Nombre</td>
        <td>Chapa</td>
        <td>Aviso</td>
        <td>ver porque</td>
        </tr>"
;

echo 
"    <tr align=center>
        <td>$aid</td>
        <td>$sunombre</td>
        <td>$tuchaplin</td>
        <td>$aviso</td>
        <td><a href='#.php?aid=$aid'>Ver</a></td></tr>"
;
echo 
"</table>";

        
$recordSet->MoveNext();     } 
        
$recordSet->Close();
        
$conn->Close();
?>
Si Dejo el
while (!$recordSet->EOF) {
Los resultados son asi

Despues del login los datos salen asi:
USUARIO ADAN
ID------NOMBRE--------CHAPA------AVISO---
1-------ADAN----------WEON-------POR CALIENTE
1-------ADAN----------WEON-------MARACO CALIENTE
2-------EVA-----------CULPABLE---NOS CAGASTE
2-------EVA-----------CULPABLE---NOS JODISTE
3-------CAIN----------ADONAI-----ERES ANTICRISTO
4-------ABEL----------TONTO------ESTAS MUERTO

Despues del login deberia salir asi:
USUARIO ADAN
ID------NOMBRE--------CHAPA------AVISO---
1-------ADAN----------WEON-------POR CALIENTE
1-------ADAN----------WEON-------MARACO CALIENTE

Si Eva se logea deberia salir asi:
USUARIO EVA
2-------EVA-----------CULPABLE---NOS CAGASTE
2-------EVA-----------CULPABLE---NOS JODISTE



OPCION 2


Si quito el
while ($row = mysql_fetch_array($result)) {
Me muestra solo un ID del mismo Usuario pero este usuario tiene mas avisos ejemplo del usuario ADAN:

USUARIO ADAN
ID------NOMBRE--------CHAPA------AVISO---
1-------ADAN----------WEON-------POR CALIENTE


Aqui el codigo

Código PHP:
<?
include_once('adodb/adodb.inc.php');
$ADODB_FETCH_MODE ADODB_FETCH_ASSOC;
$conn = &ADONewConnection('mysql');     
$conn->Connect($dbhost,$dbuser,$dbpass,$dbdatabase);
$result mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid ORDER BY AVISO.aid");
while (
$row mysql_fetch_array($result))  {

        
//AVISO
         
$aid $row['aid'];
        
$uid $row['uid'];
        
$aviso $row['aviso'];
        
//USUARIOS
        
$sunombre $row['sunombre'];
        
$tuchaplin $row['tuchaplin'];        
 
echo 
"    <table width=90%>
        <tr valign=top>
        <td>ID</td>
        <td>Nombre</td>
        <td>Chapa</td>
        <td>Aviso</td>
        <td>ver porque</td>
        </tr>"
;

echo 
"    <tr align=center>
        <td>$aid</td>
        <td>$sunombre</td>
        <td>$tuchaplin</td>
        <td>$aviso</td>
        <td><a href='#.php?aid=$aid'>Ver</a></td></tr>"
;
echo 
"</table>";
}
?>

Si Dejo el
while ($row = mysql_fetch_array($result)) {
Los resultados son asi

Despues del login los datos salen asi:
USUARIO ADAN
ID------NOMBRE--------CHAPA------AVISO---
1-------ADAN----------WEON-------POR CALIENTE
1-------ADAN----------WEON-------MARACO CALIENTE
2-------EVA-----------CULPABLE---NOS CAGASTE
2-------EVA-----------CULPABLE---NOS JODISTE
3-------CAIN----------ADONAI-----ERES ANTICRISTO
4-------ABEL----------TONTO------ESTAS MUERTO

Despues del login deberia salir asi:
USUARIO ADAN
ID------NOMBRE--------CHAPA------AVISO---
1-------ADAN----------WEON-------POR CALIENTE
1-------ADAN----------WEON-------MARACO CALIENTE

Si Eva se logea deberia salir asi:
USUARIO EVA
2-------EVA-----------CULPABLE---NOS CAGASTE
2-------EVA-----------CULPABLE---NOS JODISTE
  #2 (permalink)  
Antiguo 02/02/2010, 12:19
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Mostrar Información de Usuario en PHP

Si quieres mostrar la info solo de cierto usuario no te puede servir de ningun modo esta consulta:

$result = mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid ORDER BY AVISO.aid");

¿donde esta ahi el dinamismo? deberias llevar a la consulta el uid del usuario tal como te pongo aqui:

$result = mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid AND USUARIOS.uid=$idusuario ORDER BY AVISO.aid");
  #3 (permalink)  
Antiguo 02/02/2010, 12:37
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: Mostrar Información de Usuario en PHP

Cita:
Iniciado por Vun Ver Mensaje
Si quieres mostrar la info solo de cierto usuario no te puede servir de ningun modo esta consulta:

$result = mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid ORDER BY AVISO.aid");

¿donde esta ahi el dinamismo? deberias llevar a la consulta el uid del usuario tal como te pongo aqui:

$result = mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid AND USUARIOS.uid=$idusuario ORDER BY AVISO.aid");
Gracias por tu respuesta

He puesto lo que me indicaste

esta es mi tabla

CREATE TABLE `USUARIOS` (
`uid` int(11) NOT NULL auto_increment,
`usuario` varchar(40) NOT NULL default '',
`clave` varchar(40) NOT NULL default '',
`sunombre` varchar(100) NOT NULL default '',
`tuchaplin` varchar(100) NOT NULL default '',
PRIMARY KEY (`uid`),
);

CREATE TABLE `AVISO` (
`aid` int(11) NOT NULL auto_increment,
`uid` int(11) NOT NULL,
`aviso` varchar(100) NOT NULL default '',
PRIMARY KEY (`aid`),
);



Código PHP:
$result mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid AND USUARIOS.uid='USUARIOS.uid' ORDER BY AVISO.aid"); 
Y me siguen mostrando el mismo resultado

Y si cambio de esta forma

Código PHP:
$result mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid AND USUARIOS.uid='$uid' ORDER BY AVISO.aid"); 
no me muestra nada
  #4 (permalink)  
Antiguo 02/02/2010, 12:49
Avatar de rfadgrmm  
Fecha de Ingreso: junio-2009
Mensajes: 74
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Mostrar Información de Usuario en PHP

Hola Pilucho,

A ver que tal de esta forma:

Código PHP:
Ver original
  1. $sql = "SELECT u.uid AS id, u.usuario AS usuario, u.tuchaplin AS chapa, a.aviso AS aviso FROM usuarios u INNER JOIN avisos a ON u.uid = a.uid WHERE u.uid = ".$idusuario." ORDER BY a.aviso";

Donde $idusuario es un número. Espero te resulte.

Saludos...
  #5 (permalink)  
Antiguo 02/02/2010, 12:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 91
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Mostrar Información de Usuario en PHP

El $idusuario, al que se refieren, debio ser primero capturado de una ventana de login o algo parecido.

Si pides que introduzcan su Usuario, por ese medio puedes obtener su uid y entonces utilizar la query

Código PHP:
$result mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid AND USUARIOS.uid=$idusuario ORDER BY AVISO.aid"); 
Cuando antes recibiste ya sea por POST o GET el uid del que hizo el login, porque asi como lo tienes no te va a arrojar nada puesto que la variable

$uid no tiene nada...

Suerte, espero que me haya explicado
  #6 (permalink)  
Antiguo 02/02/2010, 13:37
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: Mostrar Información de Usuario en PHP

Gracias por sus respuestas, pero salen errores y en el ultimo no aparece nada, que podra ser..? y puse dos opciones cual de ellas es el codigo que pertenece.
  #7 (permalink)  
Antiguo 02/02/2010, 13:53
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: Mostrar Información de Usuario en PHP

Cita:
Iniciado por FlaKaMaNa Ver Mensaje
El $idusuario, al que se refieren, debio ser primero capturado de una ventana de login o algo parecido.

Si pides que introduzcan su Usuario, por ese medio puedes obtener su uid y entonces utilizar la query

Código PHP:
$result mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid AND USUARIOS.uid=$idusuario ORDER BY AVISO.aid"); 
Cuando antes recibiste ya sea por POST o GET el uid del que hizo el login, porque asi como lo tienes no te va a arrojar nada puesto que la variable

$uid no tiene nada...

Suerte, espero que me haya explicado

Hola FlaKaMaNa

He probado lo que me indicas aqui y no muestra resultado.

Lo que necesito es que me muestre cada usuario logeado sus datos y avisos como explique arriba, tengo dos opciones si uso el while aparecen todos en cada usuario logeado.

La idea es que solo aparesca la informacion del usuario y sus avisos si este tiene 600 avisos pues deben aparecer los 600 en este caso solo hay 2 por el momento ya que esto se incrementara solo.
  #8 (permalink)  
Antiguo 02/02/2010, 14:08
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Mostrar Información de Usuario en PHP

Tu duda inicial era "cada usuario que se logea debe mostarse solo su informacion"

Y ahora es "me muestre cada usuario logeado sus datos y avisos"

Aclarate primero y luego explicanos bien, segun tu primer post quieres que salgan los registros de UN SOLO usuario, pero ahora ya ni se que pensar.............
  #9 (permalink)  
Antiguo 02/02/2010, 14:29
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: Mostrar Información de Usuario en PHP

Cita:
Iniciado por Vun Ver Mensaje
Tu duda inicial era "cada usuario que se logea debe mostarse solo su informacion"

Y ahora es "me muestre cada usuario logeado sus datos y avisos"

Aclarate primero y luego explicanos bien, segun tu primer post quieres que salgan los registros de UN SOLO usuario, pero ahora ya ni se que pensar.............
Hola Vun

Gracias por tu respuesta

Vamos por parte, si me logeo con un usuario me muestra sus datos ejemplo

Despues del login los datos salen asi:
Hola! USUARIO ADAN
Informacion del usuario
ID------NOMBRE--------CHAPA------AVISO---
1-------ADAN----------WEON-------POR CALIENTE
1-------ADAN----------WEON-------MARACO CALIENTE
2-------EVA-----------CULPABLE---NOS CAGASTE
2-------EVA-----------CULPABLE---NOS JODISTE
3-------CAIN----------ADONAI-----ERES ANTICRISTO
4-------ABEL----------TONTO------ESTAS MUERTO

Despues del login deberia salir asi:
Hola! USUARIO ADAN
Informacion del usuario
ID------NOMBRE--------CHAPA------AVISO---
1-------ADAN----------WEON-------POR CALIENTE
1-------ADAN----------WEON-------MARACO CALIENTE


Arriba estan los detalles, Si uso el
Opcion 1
while (!$recordSet->EOF) {
Opcion 2
while ($row = mysql_fetch_array($result)) {


Me muestra todo los usuarios ejemplo

Despues del login los datos salen asi:
Hola! USUARIO ADAN
Informacion del usuario
ID------NOMBRE--------CHAPA------AVISO---
1-------ADAN----------WEON-------POR CALIENTE
1-------ADAN----------WEON-------MARACO CALIENTE
2-------EVA-----------CULPABLE---NOS CAGASTE
2-------EVA-----------CULPABLE---NOS JODISTE
3-------CAIN----------ADONAI-----ERES ANTICRISTO
4-------ABEL----------TONTO------ESTAS MUERTO


Arriba estan los detalles, Si Quito el
Opcion 1
while (!$recordSet->EOF) {
Opcion 2
while ($row = mysql_fetch_array($result)) {


Me muestra de esta forma.

Hola! USUARIO ADAN
Informacion del usuario
ID------NOMBRE--------CHAPA------AVISO---
1-------ADAN----------WEON-------POR CALIENTE


Pero este usuario ADAN tiene mas avisos


Gracias por su paciencia.



  #10 (permalink)  
Antiguo 02/02/2010, 16:04
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: Mostrar Información de Usuario en PHP

Mira Aqui mas facil aun si en el

WHERE AVISO.uid='1' ORDER BY AVISO.aid
le añado el numero 1 que es el ID del usuario si me muestra toda la informacion de ese usuario.

Como solucionaria eso??


Código PHP:
$conn->Connect($dbhost,$dbuser,$dbpass,$dbdatabase);
$result mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid ORDER BY AVISO.aid");
while (
$row mysql_fetch_array($result))  {

        
//AVISO
         
$aid $row['aid'];
        
$uid $row['uid'];
        
$aviso $row['aviso'];
        
//USUARIOS
        
$sunombre $row['sunombre'];
        
$tuchaplin $row['tuchaplin']; 
  #11 (permalink)  
Antiguo 02/02/2010, 16:22
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Mostrar Información de Usuario en PHP

Es repetir lo que te estamos diciendo en los posts anteriores, si tu ejecutas ese codigo, te va a salir siempre lo mismo.

Tienes que ejecutar el codigo enviandole un valor en una variable que sea el identificador (uid) de lo que buscamos. Esto es un problema de metodologia, no de sintaxis.

Con esto:

$result = mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid ORDER BY AVISO.aid");

Estas trayendote todos los registros

Con esto que te puso Flakamana:

$result = mysql_query("SELECT * FROM AVISO LEFT JOIN USUARIOS ON AVISO.uid=USUARIOS.uid WHERE AVISO.uid=USUARIOS.uid AND USUARIOS.uid=$idusuario ORDER BY AVISO.aid");

Tendremos 1 solo registro que es lo que queremos, pero claro , a ese script hay que enviarle $idusuario con algun valor! concretamente el del usuario del que acabamos de loguear
  #12 (permalink)  
Antiguo 02/02/2010, 16:33
Avatar de rfadgrmm  
Fecha de Ingreso: junio-2009
Mensajes: 74
Antigüedad: 14 años, 10 meses
Puntos: 1
Información Respuesta: Mostrar Información de Usuario en PHP

Cita:
Iniciado por pilucho Ver Mensaje
Mira Aqui mas facil aun si en el

WHERE AVISO.uid='1' ORDER BY AVISO.aid
le añado el numero 1 que es el ID del usuario si me muestra toda la informacion de ese usuario.
Si te das cuenta, el campo aviso.uid es numérico, asi que no tiene sentido que le pongas comillas simples como si se tratase de una cadena de texto. Además, te proporcioné una sentencia SQL líneas arriba que puede cubrir la consulta por ID de Usuario ($idusuario), y en el que todos los mensajes serán mostrados dependiendo del criterio de búsqueda. (O del Login de Usuario)

Ahora, como ingresas ese ID de Usuario, para eso debes tener una rutina de recolección de datos por formulario (usuario, contraseña), mandar tus datos (GET ó POST), de ahí en otra sección (puede ser otra página PHP, o incluso una clase) donde obtener tus datos por $_GET ó $_POST según el caso, procesar y colocar los resultados, en este caso por otra consulta obtener el ID de Usuario, -valga la redundancia- y almacenarla en una variable del tipo $_SESSION y que esté siempre presente hasta cuando cierre su sesión. Incluso, al crear una variable de sesión $_SESSION['IDUsuario'], lo puedes colocar en la sentencia SQL. Es lo que te puedo sugerir.

Saludos...
__________________
"Viajando en el espacio profundo, de nova en nova, y sorteando a veces uno que otro agujero negro..." Peru@D
  #13 (permalink)  
Antiguo 02/02/2010, 16:39
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: Mostrar Información de Usuario en PHP

Cita:
Iniciado por rfadgrmm Ver Mensaje
Si te das cuenta, el campo aviso.uid es numérico, asi que no tiene sentido que le pongas comillas simples como si se tratase de una cadena de texto. Además, te proporcioné una sentencia SQL líneas arriba que puede cubrir la consulta por ID de Usuario ($idusuario), y en el que todos los mensajes serán mostrados dependiendo del criterio de búsqueda. (O del Login de Usuario)

Ahora, como ingresas ese ID de Usuario, para eso debes tener una rutina de recolección de datos por formulario (usuario, contraseña), mandar tus datos (GET ó POST), de ahí en otra sección (puede ser otra página PHP, o incluso una clase) donde obtener tus datos por $_GET ó $_POST según el caso, procesar y colocar los resultados, en este caso por otra consulta obtener el ID de Usuario, -valga la redundancia- y almacenarla en una variable del tipo $_SESSION y que esté siempre presente hasta cuando cierre su sesión. Incluso, al crear una variable de sesión $_SESSION['IDUsuario'], lo puedes colocar en la sentencia SQL.

Saludos...
Muchas gracias rfadgrmm
Pero quede mas perdido que.. como se dice por alla, mas perdido que huevo en ceviche o atahualpa en fiesta gay

Bueno no tengo idea como empesar ya que estoy recontra bloqueado llevo una semana con lo msimo o mas creo, igual muchas gracias.

Etiquetas: usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:49.