Affichage en continu sans doublon

barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   -  
barale61 Messages postés 1214 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

jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Salut !

Exclu les id que t'as déjà tiré, non ?
0
barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   110
 
De quelle façon ?
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Met les en $_SESSION ;-)
0
barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   110
 
Merci je vais essayer.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   110
 
Bonjour,

Cela fonctionne pas si le total d'enregistrement est inférieur au nombre d'item dans le slider.
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   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
barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   110
 
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
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   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
barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   110
 
Ok merci je vais essayer tout ça.
0