entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Toma el número "10" como un "1", el "20" como un "2"...

Buenas. ¿Qué tal?

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? No sólo me pasa con el día, si no también con el mes y demás, lo probé dándole diferentes valores.

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. ¿Entienden?

enter image description here

Tabla 'log_acceso'

enter image description here

<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>
                                        <th><center><p style="font-size:13px">Host</center></th>
                                        </tr>
                                    </thead>
                                    <tbody>
<?php
  $count_rows = 0;
  $sql_select = mysql_query("SELECT * FROM log_acceso WHERE Jugador LIKE '%".$_SESSION['USER:NAME']."%' ORDER BY Fecha DESC LIMIT 0, 40 ");
  while($logacc = mysql_fetch_array($sql_select))
  {
    $count_rows++;
?>
                                        <tr>
                                            <td><center><p style="font-size:13px"><?php echo $logacc['Fecha']; ?></td>
                                            <td><center><p style="font-size:13px">bandera</td>
                                            <td><center><p style="font-size:13px">pais</td>
                                            <td><center><p style="font-size:13px"><?php echo $logacc['IP']; ?></td>
                                            <td><center><p style="font-size:13px">host</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ún acceso reciente a tu cuenta.
                            </div>
<?php
  }
?>
                                    </tbody>
                                </table>
                            </div>

2 Respuestas

2votos

Leonardo-Tadei Puntos227320

Seguramente estás usando el cambpo fecha en formato VARCHAR en vez de en formato DATE en la DB.

Si bien para la representación interna ambos se guardan como texto, el DATE te fuerza a ser riguroso en el formato de la fecha y no tendrás este problema.

El formato en que MySQL guarda las fechas es yyyy-mm-dd y luego lo podés convertir para que se muestre de otra forma.

Saludos cordiales!

1voto

magarzon Puntos30650

Aparte de lo que te ha dicho @Leonardo-Tadei , también puedes hacer el ORDER By así, y te olvidas de si es varchar o date:

ORDER BY UNIX_TIMESTAMP(Fecha) DESC

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta