1

PHPに2つの異なる関数をチェックして出力させる方法を見つけようとしています。

これらの質問はどちらも「remix」というテーブルを参照しています。現時点での最初の、そしてより重要な問題は、登録されている著者の総数を集計するために、「著者」の下にいくつの DIFFERENT 値があるかを示す方法を知りたいということです。「作成者」の下にUNIQUE名を返す際にCOUNTを最も効率的に使用する方法だけでなく、現在番号が付けられている行の総数とインラインで表示する方法を知る必要があります。

2 番目の質問は、アーティストの名前がリストに何回出現するかに基づいて、上位 3 人のアーティストを設定する方法を尋ねることです。これも、上記のコードと同じページに表示されます。

これが私の現在のコードです:

require 'remix/archive/connect.php';
mysql_select_db($remix);
$recentsong = mysql_query("SELECT ID,song,author,filename FROM remix ORDER by ID desc limit 1;");
$row = mysql_fetch_array($recentsong);

echo'
<TABLE BORDER=1><TR><TD WIDTH=500>

Currently '.$row['ID'].' Remixes by **(want total artists here)** artists.<BR>

Most recent song: <A HREF=remix/archive/'.$row['filename'].'>'.$row['song'].'</A> by <FONT COLOR=white>'.$row['author'].'</FONT>

ご覧のとおり、私は現在、最新の曲を表示するように設定しています (最も効率的な方法ではありません)。適切なコードを使用して、すべてを 1 つの php ブロックに配置したり、分割したり、1 回の quarry 呼び出し内ですべて実行したりできます。

助けてくれてありがとう!

4

1 に答える 1

1

あなたの質問のすべてを本当に理解できたかどうかはわかりませんが、一緒に解決していきましょう :p

いくつかのテスト データで動作する SQLFiddle を作成しました: http://sqlfiddle.com/#!2/9b613/1/0。フィールド
のINDEXに注意してください。これにより、優れたパフォーマンスが保証されます:)author

to know how to show how many DIFFERENT values are under "author"使用できる順序は次のとおりです。

SELECT COUNT(DISTINCT author) as TOTAL_AUTHORS
FROM remix;

あなたが使用できることを知るためにthe total number of rows, which are currently numbered

SELECT COUNT(*) as TOTAL_SONGS
FROM remix;

そして、両方を 1 つのクエリで組み合わせることができます。

SELECT
    COUNT(DISTINCT author) as TOTAL_AUTHORS,
    COUNT(*) as TOTAL_SONGS
FROM remix;

今すぐトップ3の科目に。このクエリは、曲数が最も多い 3 人の作者を表示します。最初の作者が一番上になります。

SELECT
    author,
    COUNT(*) as AUTHOR_SONGS
FROM remix
GROUP BY author
ORDER BY AUTHOR_SONGS DESC
LIMIT 3;

この回答が不完全な場合はお知らせください。SQL を楽しんでください。

Edit1:まあ、PHPコードを次のように書き直してください:

(...)
$recentsong = mysql_query("SELECT COUNT(DISTINCT author) as TOTAL_AUTHORS, COUNT(*) as TOTAL_SONGS FROM remix;");
$row = mysql_fetch_array($recentsong);
(...)
Currently '.$row['TOTAL_SONGS'].' Remixes by '.$row['TOTAL_AUTHORS'].' artists.<BR>
(...)

上位 3 の部分については、別の mysql_query を使用して、その場でテーブルを作成します :)

于 2012-06-18T08:14:12.563 に答える