IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

rendre aléatoire en partie un affichage d'une requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut rendre aléatoire en partie un affichage d'une requête
    Bonjour ,
    J'ai un souci pour rendre en partie aléatoire une requête sur ma bd. Soit figer deux lignes de ma bd et pour le reste, les afficher en position aléatoire.
    Actuellement j'affiche ces 15 lignes (de ma bd) dans un affichage aléatoire au niveau de la position.

    Ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query4 = "SELECT * FROM $table1 WHERE acces='1' and regulationy='1' ORDER BY Rand() LIMIT 0,15";
    Maintenant, j'ai un champ qui se nomme "classement" pour lequel j'attribue une position pour chacune de mes 15 lignes dans ma BD.
    Comme faire ma requête pour dire que je souhaite afficher d'abord la ligne qui a le 1 puis la 2 au niveau du champ "classement" et que pour les 13 autres lignes, que celles-ci s'affichent dans un ordre aléatoire ?

    D'avance merci pour votre aide
    Yule

  2. #2
    Membre expérimenté
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * FROM $table1 WHERE acces='1' and regulationy='1' and classement = '1'
    UNION
    SELECT * FROM $table1 WHERE acces='1' and regulationy='1' and classement = '2'
    UNION
    SELECT * FROM $table1 WHERE acces='1' and regulationy='1' and classement > '2' ORDER BY rand()

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 416
    Par défaut
    Salut

    Et sinon, s'il s'agit de tirer au hasard un groupe d'éléments puis d'extraire les deux premiers pour les passer en première position puis de mélanger le reste, tu peux faire un traitement php sur le résultat de ta requête actuelle. Par exemple tu mets tes résultats dans un tableau et tu utilise les fonctions sur les tableaux pour trier/couper/mélanger.

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    Avec la fonction field() tu peux modifier l'ordre dans lequel apparaissent les enregistrements :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query4 = "SELECT * FROM $table1 WHERE acces='1' and regulationy='1' ORDER BY FIELD(classement,'1','2') DESC, RAND()";

  5. #5
    Membre expérimenté
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Par défaut
    Super solution armel18, je ne connaissais pas, donc merci

  6. #6
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut
    Hello,

    Extra, je vous remercie pour ces solutions

    Bonne soirée
    Yule

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage d'une requête
    Par poula dans le forum Forms
    Réponses: 2
    Dernier message: 18/12/2006, 14h47
  2. Affichage d'une requête
    Par Sorcier157 dans le forum Zend_Db
    Réponses: 6
    Dernier message: 27/10/2006, 10h30
  3. [MySQL] affichage d'une requête
    Par gailup dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/06/2006, 10h20
  4. [MySQL] Affichage d'une requête
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 31/01/2006, 10h54
  5. Modifier l'affichage d'une requête
    Par seal dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/09/2005, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo