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 :

Prendre les 2 premiers enregistrements après un tri [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 23
    Points : 11
    Points
    11
    Par défaut Prendre les 2 premiers enregistrements après un tri
    Bonjour,
    Je cherche à récupérer les 2 premiers enregistrements mais après les avoir récupéré d'un tri, voici le code;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $query1  = "SELECT * FROM events ORDER BY date";
    $result1 = mysql_query($query1);
     
    while($row1 = mysql_fetch_assoc($result1))
    {
    	if ($row1['date'] >= date('Y-m-d'))
    	{
    displayEvents1($row1);
    	}
    }
    Avec ça je récupère tous mes enregistrements triés mais je n'arrive pas à récupérer uniquement les deux premiers, je débute en php..
    Si je mets ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query1  = "SELECT * FROM events ORDER BY date, time LIMIT 2";
    ça ne marche pas non plus
    Si quelqu'un à 5 mn

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    Salut,

    ce que tu peux faire c'est tous les sélectionner et dans ta boucle tu rajoute une condition de fin genre "tant que i<=2"

    Tu peux aussi le faire directement dans ta requête en écrivant LIMIT 0,2

  3. #3
    Membre du Club Avatar de TheEwook
    Inscrit en
    Novembre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Salut,

    Ta requête avec LIMIT 2 me semble est correct.
    Essai en retirant cette condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($row1['date'] >= date('Y-m-d'))
    Tu verras directement les résultats de ta requête.

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Bonsoir et merci pour vos réponses, en fait quand je ne mets pas la requête "time LIMIT 2" toute la requête est affiché mais quand j'insère "time LIMIT 2" je n'ai plus rien. Il me semble que après la première requête les deux premier résultats sont retenus mais après avec la 2ème condition (if ($row1['date'] >= date('Y-m-d'))) comme les deux dates retenues sont antérieures à la date actuelle rien ne s'affiche, il faudrait donc inclure la condition "time LIMIT 2" à la deuxième condition, mais comment faire?..

  5. #5
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Bonsoir, essayes un peu ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $query1  = "SELECT * FROM events ORDER BY date desc limit 0,2";
    $result1 = mysql_query($query1);
     
    while($row1 = mysql_fetch_assoc($result1))
    {
    	if ($row1['date'] >= date('Y-m-d'))
    	{
    displayEvents1($row1);
    	}
    }
    J'ai souligné l'ajout dans ton code d'origine.
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Merci pour ta réponse FredPsy,
    Je récupère bien 2 valeurs mais pour le coup de sont les dernières de mon classement chronologique..
    Voici la page en question (le code incriminé se trouve sur la droite)
    N'est il pas possible d'insérer la limite à 2 valeurs après le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($row1['date'] >= date('Y-m-d'))
    ?

  7. #7
    Membre habitué Avatar de remyli
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 270
    Points : 151
    Points
    151
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $query1  = " SELECT * 
    FROM events 
    WHERE date >= NOW()
    ORDER BY date LIMIT 0,2 ";
    et tu retire le contrôle en php.
    Orthographe => Message Privé constructif svp

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 23
    Points : 11
    Points
    11
    Par défaut

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

Discussions similaires

  1. [Tableaux] Les n premiers enregistrements
    Par hisy dans le forum Langage
    Réponses: 4
    Dernier message: 10/05/2006, 14h40
  2. Réponses: 2
    Dernier message: 28/04/2006, 22h56
  3. Requete pour obtenir les 25 premiers enregistrement
    Par dbizier dans le forum Oracle
    Réponses: 1
    Dernier message: 28/04/2006, 21h36
  4. Prendre que les 5 premiers enregistrements (les + important)
    Par __fabrice dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/11/2005, 09h24
  5. comment récupérer les x premiers enregistrements
    Par laurent82 dans le forum SQL
    Réponses: 7
    Dernier message: 12/12/2004, 16h29

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