0

これはプログラミング固有の質問ではなく、より一般的な質問です。

データベースにいくつかの引用符があります。好きなときに引用符を追加できますが、アイデアは次のとおりです。

毎日新しい見積もりが表示され、その翌日に次の見積もりが表示されます。見積もりの​​「制限」に達すると、最初の見積もりが表示され、Webサイトで常に見積もりを行うことができます。

どうすればいいですか?

「昨日IF見積もりが表示され、新しい見積もりを表示し、IF昨日見積もりもデータベースの最新である場合は最初の見積もりから開始する」のようなチェックが必要であることを私は知っています。どうやって始めたらいいのか全くわからないので、少し助けていただければ幸いです!

PHPとMySQLを使用しています。

4

3 に答える 3

3
function get_daily_quote(){
    $q = floor(time()/86400);  // will produce a number
    $n = 100; // num of quotes - you can count the quotes in the database or something
    $res = mysql_query('SELECT * FROM `quotes` ORDER BY `id` ASC LIMIT '.($q%$n).', 1');
    return mysql_fetch_assoc($res);
}

または、mysqlの古い関数の代わりにpdoを使用しますが、要点はわかります...

編集

説明のために-$qは常に前日から1ずつ進みます。$ q%$ nは、テーブルから引用タプルをフェッチするときにオフフェストになります。結果を同じ順序に保つためにIDで並べ替えます。IDは自動インクリメントされた主キーになります。これでうまくいくはずです。

もちろん、パフォーマンスが必要な場合は、ファイルに保存し、1日1回実行して更新できるため、データベースにクエリを実行する必要はありません。

編集 修正$q

于 2012-12-09T19:41:09.383 に答える
0

私はデータベースにID(例:1-100)で引用符を付け、php関数を使用してデータベースからランダムに引用符を選択します

rand(1, 100);

もちろん、その日付に選択されたものを別のテーブルに保存して、これが新しい日に生成されたかどうかを確認できるようにする必要があります。

于 2012-12-09T19:36:20.320 に答える
0

Galchens awnserがそれをカバーする必要がありますが、引用符を追加または削除すると、同じ引用符が2回取得されます。

より良い方法は、毎日ランダムな見積もりを描くことです(cronjobを使用してください)

SELECT * FROM Quotes ORDER BY RAND() LIMIT 1

2つのフィールド、使用済みおよび今日(列挙型0,1またはint 1)を追加します。今日のセット= 1日あたりのランダムな見積もりの​​場合使用されるセット=1見積もりが使用され、今日の見積もり

未使用のクォートがなくなると、0に更新されます。

すでにcronjobsを使用しているので、結果をファイルにキャッシュします。

于 2012-12-09T19:56:00.470 に答える