Affichage en continu sans doublon

Fermé
barale61 Messages postés 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 17 octobre 2024 - 23 juil. 2013 à 15:30
barale61 Messages postés 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 17 octobre 2024 - 26 juil. 2013 à 16:31
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 lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
23 juil. 2013 à 15:47
Salut !

Exclu les id que t'as déjà tiré, non ?
0
barale61 Messages postés 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 17 octobre 2024 110
23 juil. 2013 à 21:15
De quelle façon ?
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
24 juil. 2013 à 08:22
Met les en $_SESSION ;-)
0
barale61 Messages postés 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 17 octobre 2024 110
24 juil. 2013 à 21:19
Merci je vais essayer.
0

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

Posez votre question
barale61 Messages postés 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 17 octobre 2024 110
24 juil. 2013 à 23:43
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 lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
25 juil. 2013 à 08:24
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 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 17 octobre 2024 110
25 juil. 2013 à 15:40
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 lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
25 juil. 2013 à 16:00
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 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 17 octobre 2024 110
26 juil. 2013 à 16:31
Ok merci je vais essayer tout ça.
0