で複数テーブルからの固有の値をプリントアウト私は同じ構造を持っているそれぞれの複数のテーブルを持つMySQLデータベースを持っています。構造は次のとおりです。新しい順
id INT(11) NOT NULL auto_increment, site VARCHAR(350) NOT NULL, votes_up BIGINT(9) NOT NULL, votes_down BIGINT(9) NOT NULL, PRIMARY KEY(id), UNIQUE (site)
以下のPHPコードは、すべてのテーブルの向こうから、それぞれ独自の「サイト」を出力し、それがすべてのテーブルから持っている「votes_up」を合計します。次に、「サイト」の上位25個の値(降順で合計「votes_up」に基づいて)をリストします。
このコードは素晴らしい作品が、私は逆年代順に時間を作るに基づいて正確に同じことをやりたいです。これはどうすればいいですか?
事前のおかげで、
ジョン
<?
mysql_connect("mysqlv10", "username", "password") or die(mysql_error());
mysql_select_db("bookfeather") or die(mysql_error());
$result = mysql_query("SHOW TABLES");
$tables = array();
while ($row = mysql_fetch_assoc($result)) {
$tables[] = '`'.$row["Tables_in_bookfeather"].'`';
}
//$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="booklookup3.php?entry='.urlencode($row["site"]).'&searching=yes&search=search">'.$row["site"].'</a></td>';
echo '<td>'.$row["sumVotesUp"].'</td>';
echo '</tr>';
}
echo "</table>";
?>
ええと...どのようにあなたはどのような種類の日付を持っていないとき「年表」を決定しようとしている(私が見ることができる...私は盲目のですか?) – kolosy
あなたが正しいです...私は必要ですか何らかの形で「サイト」に日付スタンプを追加するには?別のクエリで 、私が新しい順に作成したテーブルを表示するにはINFORMATION_SCHEMA.TABLESとCREATE_TIMEを使用しています...ここにいることを使用する方法はありますか? – John
いいえ、テーブル行はINFORMATION_SCHEMAに記録されません。 –