Отображение 25 лучших строк таблицы по метке времени - PullRequest
0 голосов
/ 31 октября 2009

В приведенном ниже коде перечислены 25 лучших записей (переменная «site») из базы данных MySQL по параметру голосования_up в порядке убывания. Работает отлично. В каждой строке есть столбец с именем «createdatetime», имеющий следующую структуру:

Тип: отметка времени По умолчанию: CURRENT_TIMESTAMP

Как я могу изменить код ниже, чтобы показать 25 последних добавленных записей? Кроме того, как я могу отобразить метку времени следующим образом: «1 ноября 2009 года, 15:45 по Гринвичу»

Заранее спасибо,

John

   mysql_connect("mysqlv8", "username", "password") or die(mysql_error());
    mysql_select_db("sitefeather") or die(mysql_error());

    $result = mysql_query("SHOW TABLES");
    $tables = array();
    while ($row = mysql_fetch_assoc($result)) {
        $tables[] = '`'.$row["Tables_in_sitefeather"].'`';

    }

    //$subQuery = "SELECT site, votes_up FROM ".implode(" UNION ALL SELECT site, votes_up FROM ",$tables);

    $subQueryParts = array();
    foreach($tables as $table)
        $subQueryParts[] = "SELECT site, votes_up FROM $table WHERE LENGTH(site)";
    $subQuery = implode(" UNION ALL ", $subQueryParts);

    // Create one query that gets the data you need
    $sqlStr = "SELECT site, sum(votes_up) sumVotesUp
                FROM (
                ".$subQuery." ) subQuery
               GROUP BY site ORDER BY sum(votes_up) DESC LIMIT 25";
    $result = mysql_query($sqlStr);

    $arr = array(); 
    echo "<table class=\"samples2\">";
    while ($row = mysql_fetch_assoc($result)) { 
        echo '<tr>';
        echo '<td class="sitename2"><a href="sitelookup3.php?entry='.urlencode($row["site"]).'&searching=yes&search=search">'.$row["site"].'</a></td>';
        echo '<td>'.$row["sumVotesUp"].'</td>';
        echo '</tr>';
    } 

    echo "</table>";

1 Ответ

1 голос
/ 31 октября 2009

Попробуйте это:

... GROUP BY site ORDER BY sum(votes_up) DESC, createddatetime DESC LIMIT 25
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...