PHP - Resultados más recientes primero (PHP + MySQL)

   
Vista:
Imágen de perfil de Mike

Resultados más recientes primero (PHP + MySQL)

Publicado por Mike (54 intervenciones) el 12/08/2015 06:12:46
Buenas. Actualmente almaceno en una tabla llamada log_acceso, claramente, información acerca de los accesos recientes a un determinado sitio, en ésta se guardan los siguientes datos:

2prlr4d

En la web hice una función para que se muestren los 20 primeros valores o accesos que almacena la tabla que tienen que ver con el jugador en cuestión (quien está logueado).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<div class="tab-pane fade" id="log-de-acceso">
						<div class="col-lg-12">
                    <div class="panel panel-default">
						<div class="panel-body">
                            <div class="table-responsive">
                                <table class="table table-striped table-bordered table-hover">
                                    <thead>
                                        <tr>
                                            <th><center><p style="font-size:13px">Fecha</center></th>
                                            <th><center><p style="font-size:13px">-</center></th>
                                            <th><center><p style="font-size:13px">País</center></th>
											<th><center><p style="font-size:13px">IP</center></th>
                                        </tr>
                                    </thead>
                                    <tbody>
<?php
  $count_rows = 0;
  $sql_select = mysql_query("SELECT * FROM log_acceso WHERE Jugador LIKE '%".$_SESSION['USER:NAME']."%' LIMIT 0, 20 ");
  while($logacc = mysql_fetch_array($sql_select))
  {
    $count_rows++;
?>
                                        <tr>
                                            <td><center><p style="font-size:13px"><?php echo $logacc['Fecha']; ?></center></td>
                                            <td><center><p style="font-size:13px">IMG bandera</center></td>
                                            <td><center><p style="font-size:13px">País</center></td>
											<td><center><p style="font-size:13px"><?php echo $logacc['IP']; ?></center></td>
											</td>
                                        </tr>
<?php
  }
  if($count_rows == 0)
  {
?>
							<div class="alert alert-danger">
                                <button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>
                                <img src="/imagenes/iconos/error.png" /> No se ha registrado ning&uacuten acceso reciente a tu cuenta.
                            </div>
<?php
  }
?>
                                    </tbody>
                                </table>
                            </div>
							</div>
							</div>
                        </div>
                        </div>

Pero he aquí mi duda, a ver qué les parece a ustedes, ¿qué podría hacer al respecto? En lugar de mostrarme los accesos MÁS RECIENTES, me los enumera por ID (es decir, primero los más viejos y abajo los más nuevos), tengo entendido que ya según el código que poseo está hecho el límite de 20, pero quisiera hacerlo al revés. ¿Es posible? ¿Cómo?

LyXMhDk
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mike

Resultados más recientes primero (PHP + MySQL)

Publicado por Mike (54 intervenciones) el 12/08/2015 06:41:14
Lo que quisiera lograr es numerarlos por fecha en lugar que por ID.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Resultados más recientes primero (PHP + MySQL)

Publicado por xve (5519 intervenciones) el 12/08/2015 09:33:25
Hola Mike, según entiendo, únicamente tienes que hacer un ORDER BY a la consulta SQL para que te los ordene correctamente, no?

algo así:
1
$sql_select = mysql_query("SELECT * FROM log_acceso WHERE Jugador LIKE '%".$_SESSION['USER:NAME']."%' ORDER BY Fecha DESC LIMIT 0, 20 ");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mike

Resultados más recientes primero (PHP + MySQL)

Publicado por Mike (54 intervenciones) el 12/08/2015 18:19:29
Gracias una vez más, xve.

Ahora, te cuestiono lo siguiente. Tengo un caso similar al que le quería aplicar este orden de fechas, lo hice al igual que con el método que me has dicho arriba. Pero, tengo un pequeño problemita, mira, este es un caso algo particular ya que se muestran los movimientos de una cuenta virtual (depósito de dinero y eso), y entonces tengo el código para que me muestre por fechas pero está, de alguna manera "separado" y es por eso que primero me muestra lo que tengo arriba (las salidas de dinero) y abajo las entradas de dinero omitiendo la fecha en general, es decir, no la omite pero se muestra primero lo mencionado, ¿hay manera de adaptar el código para ponerlo todo junto por fecha?

7tdzAt2

En "Usuario" se almacena el que transfiere X dinero a "Destino".

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<div class="table-responsive">
                                <table class="table table-striped table-bordered table-hover">
                                    <thead>
                                        <tr>
                                            <th><center><p style="font-size:13px">Fecha</center></th>
                                            <th><center><p style="font-size:13px">DE</center></th>
                                            <th><center><p style="font-size:13px">A</center></th>
											<th><center><p style="font-size:13px">Movimiento</center></th>
                                        </tr>
                                    </thead>
                                    <tbody>
<?php
  $count_rows = 0;
  $sql_select = mysql_query("SELECT * FROM log_transacciones WHERE Usuario LIKE '%".$_SESSION['USER:NAME']."%' ORDER BY Fecha DESC LIMIT 0, 20 ");
  while($trans = mysql_fetch_array($sql_select))
  {
    $count_rows++;
?>
									<tr>
                                            <td><center><p style="font-size:13px"><?php echo $trans['Fecha']; ?></center></td>
                                            <td><center><p style="font-size:13px">(<i>user 1<?php echo $player['numero']?></i>)</center></td>
                                            <td><center><p style="font-size:13px"><?php echo $trans['Destino']; ?></center></td>
											<td><center><p style="color:red;font-size:13px">-$<?php echo number_format($trans['Cantidad'],0,",","."); ?></center></td>
											</td>
                                        </tr>
										<?php
  }
?>
<?php
  $count_rows = 0;
  $sql_select = mysql_query("SELECT * FROM log_transacciones WHERE Destino LIKE '%".$_SESSION['USER:NAME']."%' ORDER BY Fecha DESC LIMIT 0, 20 ");
  while($trans = mysql_fetch_array($sql_select))
  {
    $count_rows++;
?>
									<tr>
                                            <td><center><p style="font-size:13px"><?php echo $trans['Fecha']; ?></center></td>
                                            <td><center><p style="font-size:13px"><?php echo $trans['Usuario']; ?></center></td>
                                            <td><center><p style="font-size:13px">(<i>user 1</i>)</center></td>
											<td><center><p style="color:green;font-size:13px">$<?php echo number_format($trans['Cantidad'],0,",","."); ?></center></td>
											</td>
                                        </tr>
<?php
  }
?>
									</tbody>
                                </table>
                            </div>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Resultados más recientes primero (PHP + MySQL)

Publicado por xve (5519 intervenciones) el 13/08/2015 11:45:04
Hola Mike, segun entiendo, seria simplemente añadiendo un valor mas al ORDER BY

1
... ORDER BY Movimiento DESC,Fecha DESC LIMIT 0, 20 ");

https://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mike

Resultados más recientes primero (PHP + MySQL)

Publicado por Mike (54 intervenciones) el 13/08/2015 21:44:00
Gracias por responder. He intentado así pero me arroja el siguiente error:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in X/index.php

Claramente en las líneas donde he puesto el código que me has dicho. ¿Estás seguro de que eso podría servirme? En mi caso particularmente es que tengo dos tipos de transacciones (una es de restar dinero -cuando tu le envias a alguien- y otra de sumar dinero -cuando alguien te envía a ti-), por lo que usé dos apartados de código php y aquí es donde se me produce el problema supongo yo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mike

Resultados más recientes primero (PHP + MySQL)

Publicado por Mike (54 intervenciones) el 13/08/2015 23:19:34
Y una cosita más xve, estuve probando el sistema pero del PRIMER cuadro de todos (el del log de acceso que tenía IP y eso) y esto sucede en la fecha, estoy seguro que pasará con el de las transacciones ya que es el mismo código:

Al llegar al día 10/X/X de cualquier mes y año, lo toma como valor "1" en lugar de "10", no sólo pasa con los días si no también los meses, es decir que puedo tener como día 2 (sin llegar al 10) pero de mes 10 y ahí me sucede que me lo toma como 1.

¿Qué podría hacer?

qyCvQYy

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Resultados más recientes primero (PHP + MySQL)

Publicado por xve (5519 intervenciones) el 14/08/2015 10:11:41
No entiendo tu pregunta... la fecha la veo correcta en la imagen...veo que pone el día 10, no el día 1...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mike

Resultados más recientes primero (PHP + MySQL)

Publicado por Mike (54 intervenciones) el 14/08/2015 12:13:58
Claro, pero observa, siendo el día 10 debería estar arriba de todo de la lista ya que no hay una fecha mayor a esa y sin embargo no. ¿Entiendes?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Resultados más recientes primero (PHP + MySQL)

Publicado por xve (5519 intervenciones) el 15/08/2015 09:18:06
Hola Mike, te he contestado en otro mensaje que has puesto la misma pregunta...

Que formato es el campo Fecha en la base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mike

Resultados más recientes primero (PHP + MySQL)

Publicado por Mike (54 intervenciones) el 14/08/2015 04:53:27
Cuando escribo aquí se notifica a los que ya han comentado o debo crear un nuevo thread? Gracias disculpen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Resultados más recientes primero (PHP + MySQL)

Publicado por xve (5519 intervenciones) el 14/08/2015 10:12:43
Cada vez que escribes, se envía un correo a los usuarios del hilo que han solicitado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mike

Resultados más recientes primero (PHP + MySQL)

Publicado por Mike (54 intervenciones) el 14/08/2015 12:15:03
Claro, pero observa, siendo el día 10 debería estar arriba de todo de la lista ya que no hay una fecha mayor a esa y sin embargo no. ¿Entiendes?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar