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 :

Sélectionner le message précédent


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut Sélectionner le message précédent
    Bonsoir à tous,

    voilà je tente de faire une méssagerie privée et lorsque l'internaute supprime le message sur lequel il est positionné,

    j'aimerais l'envoyer automatiquement sur le message précédent.

    Je pense qu'il faut jouer avec le timestamp. (j'ai une colonne timestamp)

    je pense que j'aurais une requête du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    select id_mp from mp where mail=destinataire and timestamp...
    et c'est la que je bloque...

    Merci pour votre aide.

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Cela suppose d'avoir mémoriser le timestamp du message supprimé, puis dans la requête qui recherche le message qui précédait le message supprimé de faire
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    WHERE mail=destinataire 
          AND `timestamp`<timestamp_mémorisé
    ORDER BY `timestamp` DESC
    LIMIT 1
    J'entrevois tout de même un problème suite à la suppression du premier message.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    voilà je tente de faire une méssagerie privée et lorsque l'internaute supprime le message sur lequel il est positionné,

    j'aimerais l'envoyer automatiquement sur le message précédent.
    Si le "message précédent" est le message le plus récent, donc ayant le timestamp le plus haut, il faut donc chercher quel est le plus grand timestamp des messages de cet utilisateur puis récupérer l'id du message correspondant à ce message.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT m.id
    FROM mp As m
    INNER JOIN (
      SELECT MAX(`timestamp`) AS heure_dernier_msg
      FROM mp
      WHERE mail = 'destinataire'
    ) AS t ON m.`timestamp` = t.heure_dernier_msg
    WHERE m.mail = 'destinataire'
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Merci Maljuna Kris,

    c'est exactement ce que voulais et ça fonctionne.

    Mais je ne comprends pas ta phrase :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    J'entrevois tout de même un problème suite à la suppression du premier message.

  5. #5
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Ça me semble pourtant évident.
    Si tu supprimes le plus ancien message d'un destinataire, la requête ne pourra plus trouver de message ayant une date plus ancienne que celle du message supprimé.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  6. #6
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Ha non,

    avant de supprimer je prends bien-sûr les infos nécessaires.

    Avant de scier la branche sur laquelle je suis, je prends la précaution de m'accrocher à une autre branche

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

Discussions similaires

  1. Directcast du message précédent
    Par pascb423 dans le forum VB.NET
    Réponses: 24
    Dernier message: 19/11/2014, 12h14
  2. Réponses: 5
    Dernier message: 18/01/2007, 20h09
  3. Réponses: 4
    Dernier message: 27/04/2006, 09h22
  4. Réponses: 2
    Dernier message: 12/01/2006, 18h14

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