Foros del Web » Programando para Internet » PHP »

Mostrar todo los avisos del Usuario en PHP

Estas en el tema de Mostrar todo los avisos del Usuario en PHP en el foro de PHP en Foros del Web. Hola a todos Teniendo encuenta que cada usuario tiene uno o mas avisos. Mi consulta es la siguiente, el logeo de usuario funciona bien, pero ...
  #1 (permalink)  
Antiguo 03/02/2010, 19:51
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Mostrar todo los avisos del Usuario en PHP

Hola a todos

Teniendo encuenta que cada usuario tiene uno o mas avisos.

Mi consulta es la siguiente, el logeo de usuario funciona bien,
pero solo me muestra un aviso del usuario logeado, cuando este,
usuario tiene mas avisos.

Donde estaria el problema, espero me ayuden, ya que he intentado de todo.
Gracias

Aqui el codigo PHP
Código PHP:
<?
// Conexion 
$verificar_usuario="Correcto";
$dbhost=""
$dbuser="";  
$dbpass="";   
$dbdatabase="";    
$c="USUARIOS"
$f="AVISOS";
?>
<?
require ("conexion.php");
$url explode("?",$_SERVER['HTTP_REFERER']);
$pagina=$url[0];
$aviso=$pagina;
if (
$_SERVER['HTTP_REFERER'] == ""){
die (
"<center>Acceso incorrecto!</center>");
exit;
}
if (isset(
$_POST['user']) && isset($_POST['clavesegunsecreta'])) {

$conexionmysql_connect("$dbhost""$dbuser""$dbpass") or die(header ("Error Conexion"));
mysql_select_db("$dbdatabase");


$SQL mysql_query("SELECT * FROM $c LEFT JOIN $f ON $c.u_id=$f.u_id WHERE usuario='".$_POST['user']."' ORDER BY $f.a_id") or die(header ("Error Consulta"));

 if (
mysql_num_rows($SQL)>0) {
    
$login stripslashes($_POST['user']);
    
$password md5($_POST['clavesegunsecreta']);
     
$datos mysql_fetch_array($SQL);
    
mysql_free_result($SQL);
    
mysql_close($conexion);
    if (
$login != $datos['usuario']) {
       echo  
"usuario no existe";
        exit;}
    if (
$password != $datos['clavesegunsecreta']) {
        echo 
"clave incorrecta";
        exit;}
    unset(
$login);
    unset (
$password);

    
session_name($verificar_usuario); //
    
session_start();
    
session_cache_limiter('nocache,private');
    
// USUARIOS
    
$_SESSION['usuario_id']=$datos['u_id'];
    
$_SESSION['usuario_permisos']=$datos['numero_asignado'];
    
$_SESSION['usuario_login']=$datos['usuario'];
    
$_SESSION['usuario_nombre']=$datos['nombres'];
    
$_SESSION['usuario_apellido']=$datos['apellidos'];
    
$_SESSION['usuario_numero_de_aviso']=$datos['numero_aviso'];     
    
// AVISO
    
$_SESSION['usuario_a_id']=$datos['a_id'];    
    
$_SESSION['usuario_titulo_aviso']=$datos['titulo_aviso'];
    
$_SESSION['usuario_motivos']=$datos['motivos'];


    
$pag=$_SERVER['PHP_SELF'];
    
Header ("Location: $pag?");
    exit;
   } else {
      echo 
"clave o usuario no existe";
      exit;}
} else {
session_name($verificar_usuario);
session_start();
if (!isset(
$_SESSION['usuario_login']) && !isset($_SESSION['usuario_password'])){
session_destroy();
die (
"<center> Acceso incorrecto!</center>");
exit;
}
}
?>
Aqui donde se muestran los resultados

Código PHP:
<?
echo "<table width=400 border=1>  <tr>
    <td>ID</td>
    <td>Nombre</td>
    <td>Apellidos</td>
    <td>Nº Aviso</td>
    <td>Titulo Aviso</td>
    <td>Motivo</td>
    <td>VER</td></tr><tr>"
;    

echo 
"<td>  ".$_SESSION['usuario_id']."                    </td>";    // ID del USUARIO
echo "<td>  ".$_SESSION['usuario_nombre']."                </td>";    
echo 
"<td>  ".$_SESSION['usuario_apellido']."            </td>";    
echo 
"<td>  ".$_SESSION['usuario_numero_de_aviso']."     </td>";    
echo 
"<td>  ".$_SESSION['usuario_titulo_aviso']."        </td>";    
echo 
"<td>  ".$_SESSION['usuario_motivos']."               </td>";    
echo 
"<td>  <a href=TusAvisos.php?a_id=".$_SESSION['usuario_a_id'].">Ver mas</a></td></tr>";// Aqui el ID del AVISO
echo "</table>";
?>
Resultado actual es:

ID-----NOMBRES------APELLIDOS------Nº AVISOS-------TITULO AVISO---------MOTIVO-----------VER
1------Mickey---------Mouse-----------1--------------Urgente----------Donde estas--------Ver mas

Resultado correcto que deberia salir:

ID-----NOMBRES------APELLIDOS------Nº AVISOS-------TITULO AVISO----------MOTIVO-----------VER
1------Mickey---------Mouse-----------10--------------Urgente 1----------Donde estas--------Ver mas
2------Mickey---------Mouse-----------11-------------- Hola -------------bla bla bla--------Ver mas
3------Mickey---------Mouse-----------12-------------- Saludos 1---------bla bla bla--------Ver mas
4------Mickey---------Mouse-----------13-------------- Saludos 2---------bla bla bla--------Ver mas
  #2 (permalink)  
Antiguo 03/02/2010, 21:59
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Información Respuesta: Mostrar todo los avisos del Usuario en PHP

es ovio que no saves lo que haces.

lo que tienes que crear es una taba de avisos y otra de usuarios, en la tabla de avisos colocas un campo que diga usuario y alli guardar los avisos con el id del usuario.
luedo rescatas el id y haces una consulta por el id de usuario en la taba de avisos.

p.d. ovio que te muestra uno ya que solo llamas uno y lo colocas en la sesion.

si no es asi tenes que colocar el codigo de la pagina "TusAvisos.php" a la cual le mandas el id y es la unica que importa jajajaja mas encima no lo pones XD
  #3 (permalink)  
Antiguo 03/02/2010, 22:03
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Mostrar todo los avisos del Usuario en PHP

Te dejo esta parte modificada

Código PHP:
Ver original
  1. /** Esto esta mal aqui
  2. mysql_free_result($SQL);
  3. mysql_close($conexion);
  4. */
  5.  
  6. while($datos = mysql_fetch_array($SQL)){
  7.  
  8. if ($login != $datos['usuario']) {
  9.        echo  "usuario no existe";
  10.         exit;}
  11.     if ($password != $datos['clavesegunsecreta']) {
  12.         echo "clave incorrecta";
  13.         exit;}
  14.     unset($login);
  15.     unset ($password);
  16.  
  17.     # Fijate si esto no puede ir en otro lado...
  18.    session_name($verificar_usuario); //
  19.     session_start();
  20.     session_cache_limiter('nocache,private');
  21.     // USUARIOS
  22.     $_SESSION['usuario_id']=$datos['u_id'];
  23.     $_SESSION['usuario_permisos']=$datos['numero_asignado'];
  24.     $_SESSION['usuario_login']=$datos['usuario'];
  25.     $_SESSION['usuario_nombre']=$datos['nombres'];
  26.     $_SESSION['usuario_apellido']=$datos['apellidos'];
  27.     $_SESSION['usuario_numero_de_aviso']=$datos['numero_aviso'];      
  28.     // AVISO
  29.     $_SESSION['usuario_a_id']=$datos['a_id'];    
  30.     $_SESSION['usuario_titulo_aviso']=$datos['titulo_aviso'];
  31.     $_SESSION['usuario_motivos']=$datos['motivos'];
  32. }
  33.  
  34. # Deberia ir aqui
  35.  
  36. mysql_close($conexion);
__________________
HV Studio
Diseño y desarrollo web
  #4 (permalink)  
Antiguo 03/02/2010, 22:25
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Mostrar todo los avisos del Usuario en PHP

Cita:
Iniciado por enlinea777 Ver Mensaje
es ovio que no saves lo que haces.

lo que tienes que crear es una taba de avisos y otra de usuarios, en la tabla de avisos colocas un campo que diga usuario y alli guardar los avisos con el id del usuario.
luedo rescatas el id y haces una consulta por el id de usuario en la taba de avisos.

p.d. ovio que te muestra uno ya que solo llamas uno y lo colocas en la sesion.

si no es asi tenes que colocar el codigo de la pagina "TusAvisos.php" a la cual le mandas el id y es la unica que importa jajajaja mas encima no lo pones XD
Haber enlinea777

Creo que no has visto el codigo bien, tengo dos tablas uno de ellos es
$c="USUARIOS";
$f="AVISOS";

tabla usuarios y tabla avisos y para unir ambas tablas uso un LEFT JOIN , al parecer quien esta equivocado eres tu, si deseas los codigos te los paso con gusto, no son los unicos que hay tengo de todo para todo, pero como veras solo tengo este pequeño detalle de llamar mas avisos de un mismo usuario este es el 6ta programacion que he cambiado y todo me arrojan lo mismo. por ello acudo aquien conoce un poco mas del campo.

Si deseas codigos de TusAVisos.php con gusto los creo y te lo doy, eso es rapido.
  #5 (permalink)  
Antiguo 03/02/2010, 22:27
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Mostrar todo los avisos del Usuario en PHP

Cita:
Iniciado por jackson666 Ver Mensaje
Te dejo esta parte modificada

Código PHP:
Ver original
  1. /** Esto esta mal aqui
  2. mysql_free_result($SQL);
  3. mysql_close($conexion);
  4. */
  5.  
  6. while($datos = mysql_fetch_array($SQL)){
  7.  
  8. if ($login != $datos['usuario']) {
  9.        echo  "usuario no existe";
  10.         exit;}
  11.     if ($password != $datos['clavesegunsecreta']) {
  12.         echo "clave incorrecta";
  13.         exit;}
  14.     unset($login);
  15.     unset ($password);
  16.  
  17.     # Fijate si esto no puede ir en otro lado...
  18.    session_name($verificar_usuario); //
  19.     session_start();
  20.     session_cache_limiter('nocache,private');
  21.     // USUARIOS
  22.     $_SESSION['usuario_id']=$datos['u_id'];
  23.     $_SESSION['usuario_permisos']=$datos['numero_asignado'];
  24.     $_SESSION['usuario_login']=$datos['usuario'];
  25.     $_SESSION['usuario_nombre']=$datos['nombres'];
  26.     $_SESSION['usuario_apellido']=$datos['apellidos'];
  27.     $_SESSION['usuario_numero_de_aviso']=$datos['numero_aviso'];      
  28.     // AVISO
  29.     $_SESSION['usuario_a_id']=$datos['a_id'];    
  30.     $_SESSION['usuario_titulo_aviso']=$datos['titulo_aviso'];
  31.     $_SESSION['usuario_motivos']=$datos['motivos'];
  32. }
  33.  
  34. # Deberia ir aqui
  35.  
  36. mysql_close($conexion);


Gracias jackson666
Voy a intentar pero antes ya lo hice y los resultados son los mismos, el problema es de los IDs realmente nose como seria la consulta real.

Etiquetas: avisos, todo, 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




La zona horaria es GMT -6. Ahora son las 16:39.