Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consultar usuarios morosos

Estas en el tema de Consultar usuarios morosos en el foro de PHP en Foros del Web. Buena noche gente del foro, El día de hoy vengo a hacerles una pregunta y espero que me ayuden . Es lo siguiente: tengo una ...
  #1 (permalink)  
Antiguo 26/09/2013, 20:32
 
Fecha de Ingreso: septiembre-2013
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 1
Consultar usuarios morosos

Buena noche gente del foro,

El día de hoy vengo a hacerles una pregunta y espero que me ayuden .

Es lo siguiente:

tengo una tabla llamada 'informes' en la cual los usuarios suben sus informes, hasta ahí no hay problema, el problema esta en que necesito saber como sacar un reporte de los usuarios que lleven más de 20 días sin subir un informe.

P.D: La tabla 'informes' tiene un campo fecha tipo timestamp, y soy más bien novato en esto de bases de datos y programación.

Gracias por su ayuda de antemano.
__________________
Víctor Soto
  #2 (permalink)  
Antiguo 26/09/2013, 21:25
Avatar de fegm_4  
Fecha de Ingreso: febrero-2013
Mensajes: 114
Antigüedad: 11 años, 2 meses
Puntos: 8
Respuesta: Consultar usuarios morosos

La sentencia sería algo parecido a esto:
Código SQL:
Ver original
  1. SELECT * FROM informes WHERE fecha > DATE_SUB(CURRENT_TIMESTAMP(),'INTERVAL 20 DAY')
__________________
--
Aqui fegm_4
  #3 (permalink)  
Antiguo 26/09/2013, 21:48
 
Fecha de Ingreso: septiembre-2013
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Consultar usuarios morosos

Gracias por tu respuesta, funciona en parte, lo digo porque me muestra solo el numero de días del ultimo informe que un usuario subió y en la tabla 'informes' tengo mas usuarios que hace más de 20 días no suben un informe.

te muestro el código:
Código PHP:
Ver original
  1. mysql_select_db($database_conrsinves, $conrsinves);
  2. $query_reporte = "SELECT * FROM informes WHERE fecha > DATE_SUB(CURRENT_TIMESTAMP(),INTERVAL 20 DAY)";
  3. $reporte = mysql_query($query_reporte, $conrsinves) or die(mysql_error());
  4. $row_reporte = mysql_fetch_assoc($reporte);
  5. $totalRows_reporte = mysql_num_rows($reporte);

No se como hacer para mostrar los otros usuarios que esten atrasados en el envío de informes.

Gracias.
__________________
Víctor Soto

Última edición por gnzsoloyo; 27/09/2013 a las 04:13
  #4 (permalink)  
Antiguo 26/09/2013, 21:59
Avatar de fegm_4  
Fecha de Ingreso: febrero-2013
Mensajes: 114
Antigüedad: 11 años, 2 meses
Puntos: 8
Respuesta: Consultar usuarios morosos

Asumiendo que tu tabla informes contiene los siguientes campos: id, usuario y fecha, debes hacer lo siguiente:
Código PHP:
Ver original
  1. <?php
  2. $query_reporte = "SELECT * FROM informes WHERE fecha > DATE_SUB(CURRENT_TIMESTAMP(),INTERVAL 20 DAY)";
  3. $reporte = mysql_query($query_reporte, $conrsinves) or die(mysql_error());
  4. ?>
  5. <table>
  6. <tr><td>id</td><td>Usuario</td><td>Fecha</td></tr>
  7. <?php
  8. while($row =  mysql_fetch_assoc($reporte)){
  9. ?>
  10. <tr>
  11. <td><?php echo $row['id'] ?></td>
  12. <td><?php echo $row['usuario'] ?></td>
  13. <td><?php echo $row['fecha'] ?></td>
  14. </tr>
  15. <?php } ?>

Algo así por el estilo. Espero que sea útil
__________________
--
Aqui fegm_4
  #5 (permalink)  
Antiguo 26/09/2013, 22:25
 
Fecha de Ingreso: septiembre-2013
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Consultar usuarios morosos

Amigo, como decimos en Colombia cuando alguien es sorprendente "me le quito el sombrero", funciono a la perfección .

Muchisimas gracias.

Depronto si te queda fácil decirme como hacer para que por ejemplo:

con la consulta que me pasaste se muestran los que lleven más de 20 días, pero hacer que si sube el informe por decir hoy desaparezca de la lista de morosos.

No se si me explique bien.
__________________
Víctor Soto
  #6 (permalink)  
Antiguo 27/09/2013, 04:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consultar usuarios morosos

Movido a PHP.

Mostrar los resultados en pantalla es off-topic de MySQL. Son temas de programación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 27/09/2013, 06:05
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 2 meses
Puntos: 96
Respuesta: Consultar usuarios morosos

Si el usuario subio un informe, al realizar la cinsulta no aparecera.
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #8 (permalink)  
Antiguo 27/09/2013, 06:15
Avatar de fegm_4  
Fecha de Ingreso: febrero-2013
Mensajes: 114
Antigüedad: 11 años, 2 meses
Puntos: 8
Respuesta: Consultar usuarios morosos

No entiendo muy bien lo que quieres hacer, pero esto que tienes funciona bajo cualquier actualización de la tabla informes
__________________
--
Aqui fegm_4
  #9 (permalink)  
Antiguo 27/09/2013, 06:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consultar usuarios morosos

Dependerá del campo "fecha"... Si es DATETIME o TIMESTAMP, está considerando las horas también, por lo que no saldrá ningún registro anterior a la misma hora de ejecución, pero 20 días antes.
¿Qué tipo de dato tiene esa columna?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 27/09/2013, 09:37
 
Fecha de Ingreso: septiembre-2013
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Consultar usuarios morosos

El dato de la columna es timestamp.

Pues es que hice una prueba con un usuario que haciendo la consulta con la que me ayudo fegm_4 me aparecía en morosos, entonces subí un informe para ver si al subirlo dejaba de aparecer en la lista y no, sigue apareciendo.

Entonces mi pregunta es como hacer que al momento de que un usuario suba un informe ya deje de aparecer en la lista de morosos.

Me explique mejor esta vez?


Gracias.
__________________
Víctor Soto
  #11 (permalink)  
Antiguo 27/09/2013, 10:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consultar usuarios morosos

No veo que esa consulta tenga condiciones que ayuden a definir que no es moroso...
¿Cómo especificas que alguien es moroso? ¿Cuáles serían las condiciones?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 27/09/2013, 10:29
 
Fecha de Ingreso: septiembre-2013
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Consultar usuarios morosos

Para saber que es moroso, sería cuando se detecte que lleva más de 20 días sin subir un informe, pero no se como sería la condición en la consulta o la condición en php.

__________________
Víctor Soto
  #13 (permalink)  
Antiguo 27/09/2013, 10:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consultar usuarios morosos

OK.
Por lo pronto, en lugar de estar leyendo principalmente la tabla de informes, deberías estar leyendo la tabla que contiene a quienes presentan los informes. Eso simplemente porque si no presentaron informes, pues... no existirán en esa tabla.
Voy a hacer una suposición: Que existe una tabla "usuarios", relacionada con la de "informes". En ese caso la consulta debería ser mas o menos así:
Código PHP:
 <?php
$query_reporte 
"SELECT * 
    FROM usuarios U 
    WHERE U.usuario_id NOT IN(
        SELECT DISTINCT usuario_id 
        FROM informes 
        WHERE fecha > DATE_SUB(CURRENT_TIMESTAMP(),INTERVAL 20 DAY));"
;
$reporte mysql_query($query_reporte$conrsinves) or die(mysql_error());
echo 
"<table>";
echo 
"<tr><td>id</td><td>Usuario</td><td>Fecha</td></tr>";
while(
$row =  mysql_fetch_assoc($reporte)){
echo 
"<tr>";
echo 
"<td> $row['id'] </td>";
echo 
"<td> $row['usuario'] </td>";
echo 
"</tr>";
?>
Esto, suponiendo que existe USUARIOS, y que la PK de esa tabla se llama "usuario_id", y que al mismo tiempo es FK en "informes".
El resto se implementaría mas o menos como ya lo tienes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 27/09/2013 a las 11:25
  #14 (permalink)  
Antiguo 27/09/2013, 11:41
 
Fecha de Ingreso: septiembre-2013
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Consultar usuarios morosos

Eeeeee como no me habia regístrado antes en esta maravilla de foro.

gnzsoloyo Adapte lo que me diste y me funciona perfectamente.


Agradecer inmensamente a gnzsoloyo y a fegm_4 por el interes y la amabilidad en ayudarme.





Consulta superada!!!
__________________
Víctor Soto

Etiquetas: campo, consultar, mysql, tabla, 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 13:39.