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 :

RAND() requete sql sauf sur le dernier id [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut RAND() requete sql sauf sur le dernier id
    Bonjour.

    J'ai deux images d'affichées comme ceci :

    une qui est la dernière entrée dans la base de données et une qui est au hasard avec rand() de mysql.

    Celle au hasard, je ne veux pas qu'il inclu la dernière entrée dans la base pour ne pas dupliquer les images en affichage.

    Une manière de faire avec MYSQLi ?

    Merci.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans ta deuxième requête, exclu l'image que tu as déjà tiré.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Je vais être plus précis sur la requete :

    Mes requêtes actuelles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$lastimg=$connexion->query("SELECT id,images FROM `origami`.`ori_images` ORDER BY id DESC LIMIT 1");
    	$randum=$connexion->query("SELECT id,images FROM `origami`.`ori_images` ORDER BY RAND() LIMIT 1");
    Ce que je pense :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$lastimg=$connexion->query("SELECT id,images FROM `origami`.`ori_images` ORDER BY id DESC LIMIT 1");
    	$randum=$connexion->query("SELECT MAX(ID) AS max,id,images FROM `origami`.`ori_images` WHERE max='id-1' ORDER BY RAND() LIMIT 1");
    C'est pas vraiment une bonne réussite ma requête.. j'ai pas vraiment d'idée comment la faire.

    Citation Envoyé par sabotage Voir le message
    Dans ta deuxième requête, exclu l'image que tu as déjà tiré.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    l'id que tu dois exclure dans la requête $randum c'est l'id que tu auras tiré dans la requête $lastimg, il n'y a pas d'astuce de syntaxe.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    J'ai fini par trouver en testant avec phpmyadmin. Tout ce qu'il me fallait est la commande NOT IN que je ne connaissait pas.

    $randum=$connexion->query("
    SELECT id,images
    FROM `origami`.`ori_images`
    WHERE id
    NOT IN (SELECT MAX(id) FROM `origami`.`ori_images`)
    ORDER BY RAND()
    LIMIT 1");

    Je fais affiché un "id" au hasard avec RAND() mais qui n'est pas dans la 2e requête déterminé par MAX(id); ça fonctionne parfaitement. J'avoue qu'elle n'était pas facile cette requête en tant que débutant.

    J'ai pas eu recours à l'autre requête "lastimg".

    Citation Envoyé par sabotage Voir le message
    l'id que tu dois exclure dans la requête $randum c'est l'id que tu auras tiré dans la requête $lastimg, il n'y a pas d'astuce de syntaxe.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 10/02/2015, 09h01
  2. [SQL] Lancer requetes SQL périodiquement sur serveur mysql (easyphp)
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/12/2007, 12h33
  3. [Requete SQL] Tempo sur une requete d'action
    Par userB dans le forum VBA Access
    Réponses: 4
    Dernier message: 25/09/2007, 14h35
  4. [MySQL] Requête SQL portant sur le TIME
    Par condor_01 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/08/2006, 09h41
  5. Réponses: 4
    Dernier message: 23/06/2006, 17h35

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