MySQLと統合して2種類のアイテム(アイテムは曲)を含むiPhoneアプリに.plistファイルを送信するPHPスクリプトがあります。
- アプリにすでに表示されているはずのアイテム
- 将来的に表示されるはずのアイテム
2つのクエリと完全に機能するPHPを使用して、過去と未来のアイテム(それぞれの可変量が必要)を希望の順序で取得します。単一のクエリソリューションを見つけられなかった、または思い付かなかったことが主な理由ですが、皆さんがこれをどのように解決するのか興味があります。必要な順序で行を取得するための単一のクエリはありますか?他の順序で行を取得するための単一のクエリはありますか?
とにかく、これが私が望む結果行を取得し、結果の.plistに表示したい順序でそれらを配置するPHPとSQLです。私はUNIXタイムスタンプを使用しているのは、それが簡単だからです。そのため、非難されないことを願っています。特に私の特定の質問に影響を与えるとは思いません。
$readbehind = mysql_query(sprintf('SELECT SongID, RemoteSongLocation, SongTitle, UNIX_TIMESTAMP( ScheduledActivationDateTime ) AS ActivateAfterUnixTime FROM `thesongs` WHERE UNIX_TIMESTAMP( ScheduledActivationDateTime ) < UNIX_TIMESTAMP( ) ORDER BY ScheduledActivationDateTime DESC LIMIT 0, %d', MAX_READBEHIND_SONGS));
$readahead = mysql_query(sprintf('SELECT SongID, RemoteSongLocation, SongTitle, UNIX_TIMESTAMP( ScheduledActivationDateTime ) AS ActivateAfterUnixTime FROM `thesongs` WHERE UNIX_TIMESTAMP( ScheduledActivationDateTime ) > UNIX_TIMESTAMP( ) ORDER BY ScheduledActivationDateTime ASC LIMIT 0, %d', MAX_READAHEAD_SONGS));
$songsForClient = array();
while ($row = mysql_fetch_assoc($readbehind)) {
$songsForClient[] = $row;
}
while ($row = mysql_fetch_assoc($readahead)) {
$songsForClient[] = $row;
}