Affichage en continu sans doublon

barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   -  
barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un diaporama dans lequel j'affiche des contenus dynamiques avec une requête différente pour chaque affichage en utilisant la fonction rand(). Le problème est que sur dix enregistrements, j'arrive à obtenir deux fois le même affichage malgré un rafraîchissement toutes les 30 secondes.

mysql_select_db($database_article_recherche, $article_recherche);
$query_rsArticles1 = "SELECT articles.reference, articles.prix, articles.designation, familles.intitule, articles.photo FROM articles, familles ORDER BY rand()";
$rsArticles1 = mysql_query($query_rsArticles1, $article_recherche) or die(mysql_error());
$row_rsArticles1 = mysql_fetch_assoc($rsArticles1);
$totalRows_rsArticles1 = mysql_num_rows($rsArticles1);


Je voudrais trouver une solution pour éviter ça.

Merci de votre aide.

9 réponses

  1. jeremy.s Messages postés 1248 Statut Membre 79
     
    Salut !

    Exclu les id que t'as déjà tiré, non ?
    0
  2. barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   113
     
    De quelle façon ?
    0
  3. jeremy.s Messages postés 1248 Statut Membre 79
     
    Met les en $_SESSION ;-)
    0
  4. barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   113
     
    Merci je vais essayer.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   113
     
    Bonjour,

    Cela fonctionne pas si le total d'enregistrement est inférieur au nombre d'item dans le slider.
    0
  7. jeremy.s Messages postés 1248 Statut Membre 79
     
    Comment ca ?
    Tu as déjà fait un code ?

    Mon raisonnement était :

    Tu initialises la session avec rien.
    Tu fais tes dix requetes en rajoutant une clause where : IN NOT ($_SESSION), grossièrement hein.
    Tu rajoute l'id que tu viens de prendre dans ta session.
    Ainsi de suite ...
    0
  8. barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   113
     
    En fait j'ai fait:

    mysql_select_db($database_article_recherche, $article_recherche);
    $query_rsArticles2 = "SELECT articles.reference, articles.prix, articles.designation, familles.intitule, articles.photo FROM articles, familles WHERE reference NOT IN ('$_SESSION[monarray]')";
    $rsArticles2 = mysql_query($query_rsArticles2, $article_recherche) or die(mysql_error());
    $row_rsArticles2 = mysql_fetch_assoc($rsArticles2);
    $totalRows_rsArticles2 = mysql_num_rows($rsArticles2);
    
    $_SESSION['monarray2'] = $row_rsArticles2['reference'];
    


    etc.

    Mais quand ça a fait le tour et si lil y a moins d'enregistrement que de reqêtes, ça plante mais bon rien d'étonnant comme je m'y prends.
    0
  9. jeremy.s Messages postés 1248 Statut Membre 79
     
    Tes dix requêtes tu les fais dans une boucle ?

    Moi je te conseil ca :

    $res = tableau pour récupérer tes 10 requetes;
    $id = tableau avec les id déjà récupéré;

    Pour i = 0, tant que i < 10 :
    requête en excluant les id déjà tiré;
    $res[] = résultat de la requete;
    $id .= ', ' . id que tu viens de tirer

    0
  10. barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   113
     
    Ok merci je vais essayer tout ça.
    0