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

Requêtes MySQL Discussion :

Script assez difficile avec random


Sujet :

Requêtes MySQL

  1. #1
    LFC
    LFC est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Points : 70
    Points
    70
    Par défaut Script assez difficile avec random
    Bonjour

    Alors voilà, j'ai besoin d'un script qui m'affiche un tableau de 5 colonnes avec 5 images prises au hasard depuis une base de données, mais seulement lorsque les images ont un lien.
    Et je voudrais faire cela en faisant 1 seule requête, d'où la puissance du script si on trouve...

    Je pense que mon algo est le suivant :

    En faisant une boucle,
    je crée un nombre aléatoire
    je vérifie si une image est associée à ce nombre
    si elle l'est je garde et je place le tout dans une colonne et je passe au suivant.
    Si elle est vide, alors je recommence.
    Mais voilà, ça me fait faire 5 requêtes... donc, c'est pas bon ou alors c'est que je sais pas l'écrire.


    Et d'une autre manière, j'ai pensé à :
    1- creation de 5 nombres aleatoires
    2- 1 requete est lancée pour les extraire avec/sans leur image
    3- On teste s'il n'y a pas de case vide dans ce qu'on a sorti.
    4- S'il y a un vide, on recommence
    [ et c'est là le prob, si on doit tout recommencer, y'a un risque d'attendre une éternité avant d'avoir tout bon... ]
    5- Si tout est ok, c'est fini on affiche dans le tableau.

    J'espère que je me suis bien expliqué...

    Je suis en ligne pour répondre à vos doutes ou suggestions...

  2. #2
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    ce que je te propose n'est pas en une seule requete mais vu que mysql ne fait pas de random, je vois pas comment faire. voilà mon idée.

    1. tu recupere le nb d'images qui vont bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Count(NumImage)As Nb_images From Table Where Lien IS NOT NULL
    2. Tu recupere tous les numeros des images qui ont des liens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select NumImage From Table Where Lien IS NOT NULL
    3. tu cree un tableau de Nb_images cases dans lequel tu stocke tes images trouvées en 2.

    4.puis tu cree 5 nombre aleatoires de 0 à Nb_images-1 qui te donneront accès aux 5 numéris d'images que tu veux. tu n'as plus qu'à afficher ces images.

    c'est pas du tout en une seule requete mais là, je ne vois pas d'autres solutions...
    j'espere que ça t'aidera quand même

  3. #3
    LFC
    LFC est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Points : 70
    Points
    70
    Par défaut
    En fait, le random est fait par php, donc je peux soit sortir 1 chiffre, soient les 5. Je vais essayer ton idée...

  4. #4
    LFC
    LFC est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Points : 70
    Points
    70
    Par défaut
    En fait, je me demande si interroger la base pour ressortir tous les élements qui pourraient être valides est une bonne idée parce que ça serait à faire tout le temps et donc, je pense que c'est pas trop optimal...
    Mais bon, si personne n'a d'autres idées, je pense prendre ça comme technique.
    Merci quand même...

  5. #5
    LFC
    LFC est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Points : 70
    Points
    70
    Par défaut
    Bon, pour l'instant, j'arrive à récupérer les lignes qui sont ok.

    Maintenant, reste le problème de sélectionner au hasar 5 de ces lignes.

    Et si j'introduis du php ça marche.

    Est-ce qu'il y a une fonction mysql qui prend une des lignes au hasard ?

  6. #6
    LFC
    LFC est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Points : 70
    Points
    70
    Par défaut
    Je me réponds.

    $requete = mysql_query("SELECT * FROM table ORDER BY RAND() LIMIT 0,1");

    Cette requête vas donc sélectionner 1 entrée (limit 1,0) au hasard (order by rand).

    Allons donc l'exploiter...

  7. #7
    LFC
    LFC est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Points : 70
    Points
    70
    Par défaut
    Voilà, c'est nickel.
    ça marche à la perfection.
    Bon week-end.

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

Discussions similaires

  1. Script SHELL/UNIX avec mysql
    Par HacHHacH dans le forum Linux
    Réponses: 6
    Dernier message: 06/04/2006, 23h48
  2. Réponses: 18
    Dernier message: 15/02/2006, 13h51
  3. Réponses: 1
    Dernier message: 15/02/2006, 11h49
  4. Problème avec Random
    Par Mvu dans le forum ASP
    Réponses: 2
    Dernier message: 28/09/2005, 11h59
  5. Script bash : Pb avec sed
    Par fred64 dans le forum Linux
    Réponses: 3
    Dernier message: 19/08/2005, 11h24

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