Question

J'ai un ami qui dirige un site d'enchères en ligne. Il dispose actuellement d'une section articles en vedette sur la page d'accueil qu'il veut avoir un élément du cycle chaque quantité X de minutes. Le site fonctionne sur une base de données MySQL que j'ai pas vu encore.

Le code actuel qu'il utilise est un grand, à long désordre code Javascript qui provoque toutes sortes d'erreurs.

Les éléments devraient cycle pour et quand ils arrivent à la fin, revenir en arrière et répéter à nouveau.

Quelle serait la meilleure approche à prendre pour suivre avec PHP?

EDIT: Je veux dire à partir d'un point de vue backend SQL. Pas l'interface utilisateur.

Merci Ben

Était-ce utile?

La solution

En supposant que vous avez une table séparée pour les éléments présentés (a probablement un code d'article faisant référence au tableau principal des éléments et peut-être d'autres informations) ... Dans ce tableau, ajoutez une colonne de last_featured pour représenter le moment où l'élément a été la dernière illustration. A partir de là, vous pouvez manipuler vos requêtes pour obtenir une liste de rotation des éléments présentés.

Il pourrait ressembler à ceci (comme un mélange bizarre entre PHP pseudocode et 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'];
}

Notez que cela nécessite 3 appel à la base de données ... Il peut y avoir un moyen plus efficace d'y parvenir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top