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 :

Liste des récents [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut Liste des récents
    Bonjour,
    J'ai une fonction destinée à sélectionner une ligne de table parmi les plus récentes consultées. Mon problème est de savoir comment trier les données pour avoir la dernière ligne consultée en premier, c'est à dire dans le code qui suit, dans l'ordre de la variable $strLatest.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function getLatest($arrLatest) {
    	global $db;
     
    	$dateFormat = LOCAL_DATE_FORMAT;
    	$strLatest	= implode(', ', $arrLatest);
    	$query = "
    		SELECT id, CONCAT(COALESCE(last_name, ''), ' ', COALESCE(first_name, '')) AS name, DATE_FORMAT(birth_date, '$dateFormat') AS birthdate
    		FROM dat_persons
    		WHERE id IN($strLatest)
    	;";
    	$result = $db->prepare($query);
    	$result->execute();
    	return $result->fetchAll();
    }

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    On veut bien répondre, mais on ne sait rien des variables, ni sur quel critere est censé se faire le tri.

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut
    $arrLatest contient une liste d'id sous forme de tableau - exemple:
    array (size=3)
    0 => string '5' (length=1)
    1 => string '88' (length=2)
    2 => string '9' (length=1)

    $strLatest contient la même liste sous forme de chaîne - exemple:
    string '5, 88, 9' (length=8)

    Le tri doit se faire dans l'ordre croissant des clefs du tableau (ou d'apparition dans la chaîne)

  4. #4
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Salut. Si tu veux personnaliser l'ordre d'un champ en SQL (ni ASC, ni DESC), tu peux faire ce genre de order by :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id, CONCAT(COALESCE(last_name, ''), ' ', COALESCE(first_name, '')) AS name, DATE_FORMAT(birth_date,'%d/%m/%Y') AS birthdate
    FROM dat_persons
    WHERE id IN(5, 88, 9)
    ORDER BY FIELD('id', 5, 88, 9)

    edit : nous sommes d'accord que ces dates de dernière consult ne sont pas dans ta base ? Car sinon tu pourrais directement les trier en DESC...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut
    Je te mets un +1 malgré une petite erreur: Il ne faut pas d'apostrophe autour du nom de la colonne.

  6. #6
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Super. Je te "like" et tu coches "Résolu"... C'est important, "résolu".
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

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

Discussions similaires

  1. Nettoyer la liste des projets récents sous Visual 2008
    Par dede92 dans le forum Visual C++
    Réponses: 2
    Dernier message: 29/01/2011, 19h43
  2. Effacer la liste des documents récents
    Par damsmut dans le forum VBScript
    Réponses: 13
    Dernier message: 20/04/2008, 21h31
  3. Liste des enregistrements les plus récents
    Par calagan99 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/03/2008, 11h39
  4. liste des fichiers récents ouverts
    Par salihovic dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/10/2007, 09h11
  5. Réponses: 5
    Dernier message: 09/09/2006, 21h30

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