While et affichage

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : While et affichage

par Ryle » 08 mars 2008, 13:46

Question ? Si il met 0,10 dans limit il fera un rand que sur la portion entre 0 et 10 ?
Nope, le LIMIT ne fait que restreindre le nombre d'enregistrements retournés par MySQL, il n'affecte en rien l'exécution de la requête :)

par Aureusms » 08 mars 2008, 04:03

Question ? Si il met 0,10 dans limit il fera un rand que sur la portion entre 0 et 10 ?
$req=mysql_query("SELECT `ps`,`ur`,`mes` FROM `de` ORDER BY rand() LIMIT 0,10");
$k=0;
while ($resu = mysql_fetch_assoc($req) )
{
$tab_sortie[$k]['ps'] = $resu['ps'];
$tab_sortie[$k]['ur'] = $resu['ur'];
$tab_sortie[$k]['mes'] = $resu['mes'];
$k++;
}
//après tu travailles sur ton tableau comme tu veux :
foreach ($tab_sortie as $valeur)
{
echo'<marquee scrollamount="2">- '.$valeur['ps'].' | '.$valeur['mes'].' | <a href="'.$valeur['$ur'].'" target="_blank">'.$valeur['ur'].'</a> -</marquee>';
}

Edit : j'ai fais un petit truc pour sortir tout tes résultats et remplacer mysql_fetch_array par mysql_fetch_assoc pour libérer de la mémoire (merci encore à ce forum de me l'avoir instruit !)

par Ryle » 07 mars 2008, 11:17

La requête que tu utilises te retourne l'ensemble des éléments de ta table "de" trié dans un ordre aléatoire. Ta boucle permet de les parcourir un par un (en écrasant la valeur de chacune de tes variable avec les valeurs de l'enregistrement qui est lu). Si ton echo se trouve en dehors de la boucle, cela signifie qu'il a parcouru l'ensemble des enregistrement et que tu affiches le dernier :)

Pour que ton echo puisse afficher plusieurs enregistrements, il faut qu'il soit dans la boucle.
Pour que l'ensemble des éléments soient présent dans le marquee, il faut que celui-ci soit autour de la boucle.
Enfin, pour que seulement 10 éléments ne soient affichés et non pas tout le contenu de la table, tu peux utiliser la commande LIMIT de MySQL qui permet à ta requête de ne retourner que les 10 premiers enregistrements : " ... ORDER BY rand() LIMIT 0, 10" (soit 10 enregistrements à partir de l'enregistrement 0)

HTH

While et affichage

par Invité » 06 mars 2008, 18:24

Bonjour, je selectionne des données de cette facon :
$req=mysql_query("SELECT * FROM de ORDER BY rand()");
while ($resu = mysql_fetch_array($req) )
{
$ps = $resu['ps'];
$ur = $resu['ur'];
$mes= $resu['mes'];

} 
Et j'affiche le résultat comme ceci :
echo'<marquee scrollamount="2">- '.$ps.' | '.$mes.' | <a href="'.$ur.'" target="_blank">'.$ur.'</a> -</marquee>';
Là, il m'affiche 1 résultat aléatoire...

J'ai cherché mais je trouve pas comment faire pour afficher plusieurs résultat à la fois qui défile dans la balise <marquee>, par exemple 10 résultats.

Merci à ceux qui pourront m'aider :wink: