Capturar los datos del usuario que se ha logueado

Mi consulta puede que tenga una solución bastante simple, pero estoy atorado en un acertijo que no he podido resolver.
Estoy creando una plataforma de gestión escolar, donde se deben registrar docentes, estudiantes, y personal administrativo.
Mi problema es que cuando inicio la sesión como docente por ejemplo, logro que me muestre mi nombre de usuario con el cual inicié sesión, además, puedo visualizar el ramo que se supone que llevo a cabo, pero no logro capturar ningún otro dato más.
El código resumido de la página "MyAccount" (que corresponde a la página donde muestro los datos del usuario logueado), es el siguiente:
<?php 
// CONEXIÓN A LA BASE DE DATOS
// SECUENCIA QUE UTILIZO PARA CAPTURAR LOS DATOS DEL USUARIO LOGUEADO
$queEmp = "SELECT * FROM docentes WHERE username = '".$_SESSION['username']."'";
$resEmp = mysql_query($queEmp, $link) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
?>
Para mostrar el nombre de usuario de quien se ha logueado utilizo la siguiente sentencia, la cual escribo donde deseo que aparezca el nombre de usuario.
<?php echo $_SESSION["username"] ?>
Los datos del usuario se mostrarían en campos de texto (sólo lectura permitida) de la siguiente manera:
Actividad Curricular (Ramo): 
<input name="ActCurrName" type="text" id="ActCurrName" readonly="readonly" size="30" value="<?php
 if ($totEmp> 0) {
while ($rowEmp = mysql_fetch_assoc($resEmp)) {
 echo "".$rowEmp['selectActCurr'].""; 
}
 }
 ?>" />
Con esa sentencia recupero los datos del usuario, pero sólo puedo recuperar eso no más. Lo que necesito hacer yo, es recuperar otros datos que también se mostrarían en campos de sólo lectura tales como: sección, sala de clases, cantidad de estudiantes y fecha de alta. (Todos esos datos están registrados en la Base de Datos, pero no puedo mostrárselos al usuario).
Es muy probable que la secuencia php haya que hacerle algún ajuste para que funcione con el resto de los campos, pero no sé cómo hacerlo.
1

1 Respuesta

116.450 pts. Desarrollador web, especializado en PHP, AJAX, HTML, CSS
¿Y dónde tienes los datos que faltan mostrat?
El resto de los datos se encuentran en la base de datos, pero con la función que te mencioné con anterioridad sólo puedo recuperar un dato, y ninguno más.
Yo había intentado esto:
<input name="ActCurrName" type="text" id="ActCurrName" readonly="readonly" size="30" value="<?php 
 if ($totEmp> 0) { 
while ($rowEmp = mysql_fetch_assoc($resEmp)) { 
 echo "".$rowEmp['selectActCurr']."";  

 } 
 ?>" />
Con eso recupero el nombre de la asignatura que el profesor imparte.
Y si yo vuelvo a repetir la sentencia php
<?php 
 if ($totEmp> 0) { 
while ($rowEmp = mysql_fetch_assoc($resEmp)) { 
 echo "".$rowEmp['Nombre_de_otro_campo']."";  

 } 
 ?>
A otro campo donde deseo recuperar otro dato, no pasa nada, sólo recupera el primero y ninguno más.
Es por que tienes que hacerlo dentro del mismo while
while ($rowEmp = mysql_fetch_assoc($resEmp)) { 
 echo "".$rowEmp['selectActCurr']."";  
$otroDato = $rowEmp['otroDato']
$otroMas = $rowEmp['otroMas']
}
Esa misma función, ¿cómo puedo hacerla más independiente?. Me explico, lo que tú me dices es lo correcto y efectivamente funciona, pero cómo puedo hacer algo como esto:
Ej.:
<?php 
$otroDato = $rowEmp['otroDato']
?>
Aquí puede haber un contenido x.....
<?php
$otroMas = $rowEmp['otroMas']
?>
A eso me refiero con independiente, no que tenga que recuperar todos los datos de un viaje, no sé si soy claro o me explico bien.
Ahí me preguntas si es que estoy muy enredado.
Al guardarlo en una variable, lo puedes usar más adelante, cuando y cuantas veces lo necesites, sólo necesitas hacer echo $variable, y listo
¿Cómo puedo guardar los datos en una variable $_SESSION, que es la que estoy empleando en la plataforma?. Sorry por preguntar tanto, pero esta cuestión me tiene complicado.
$_SESSION['nombreVariable'] = $variable;
$_SESSION['otraVariable'] = $otraVariable;
Tus preguntas no molestan, estoy para ayudarte (al fin y al cabo, yo también tuve esas dudas cuando empecé, y no tuve a nadie a quien preguntarle)
Marcelo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas