0

オンラインオークションサイトを運営している友人がいます。彼は現在、ホームページに特集アイテム セクションを持っており、X 分ごとにアイテムを循環させたいと考えています。このサイトは、私がまだ実際に見たことのない MySQL データベースを使用しています。

彼が使用している現在のコードは、あらゆる種類のエラーを引き起こしている大きくて長い乱雑な Javascript コードです。

アイテムは順番に循環する必要があり、最後に到達したら戻ってもう一度繰り返します。

PHPを使用してこれに取り組むための最良のアプローチは何でしょうか?

編集: バックエンド SQL の観点からの意味です。UIではありません。

ありがとうベン

4

1 に答える 1

0

注目のアイテム用の別のテーブルがあると仮定します (おそらく、メイン アイテム テーブルと他の情報を参照するアイテム ID を持っています)... このテーブルにlast_featured、アイテムが最後に表示された時間を表す列を追加します。そこからクエリを操作して、注目のアイテムのローテーション リストを取得できます。

これは次のようになります (PHP と MYSQL の間の奇妙な疑似コードの組み合わせとして):

// select the most recent item in the list, considered the current item
$item = SELECT * FROM featured_items ORDER BY last_featured DESC LIMIT 1;

if ($item['last_featured'] > X_minutes_ago) {
    // select the oldest item in the list, based on when it was last featured
    $item = SELECT * FROM featured_items ORDER BY last_featured ASC LIMIT 1;

    // update the selected item so it shows as the current item next request
    UPDATE featured_items SET last_featured=NOW() WHERE item_id = $item['item_id'];
}

これにはデータベースへの 3 回の呼び出しが必要であることに注意してください。これを達成するためのより効率的な方法があるかもしれません。

于 2009-11-23T06:07:35.060 に答える