Bonsoir à tous le monde voila j'ai une table message qui contient les champs suivants (user ,message) j'aimerais programmer une requête sql qui va me permettre de garder que les 10 derniers messages d'utilsiateur dans la table
Merci
Bonsoir à tous le monde voila j'ai une table message qui contient les champs suivants (user ,message) j'aimerais programmer une requête sql qui va me permettre de garder que les 10 derniers messages d'utilsiateur dans la table
Merci
Bonsoir,
utilise LIMIT 10 si c'est pour un utilisateur précis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT message FROM message WHERE user = 'monUser' LIMIT 10
une réponse vous a permis d'avancer ?
bonsoir merci pour votre réponse
s'il vous plait si vous supprimer les anciens messages?
je fait delete from message limit 11??
Merci
Pour avoir les 10 derniers messages, il te faut une donnée qui permette de trier les messages. Si tu n'as que les colonnes (et pas champs ! ) "user" et "message", tu ne peux pas être sûr que ceux que tu obtiens avec LIMIT sont les 10 derniers insérés dans la table.
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 !
Bonjour je souhaite afficher le contenu d'un div proportionnel au height du div c à d lorsque hauteur du mon div est 100px seulement les premier 100px de son contenu serons afficher
Voici l'exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 <style type="text/css"> .stylediv { background-color: #99CCFF; padding:20px; margin-top:10px; } </style> <script type="text/javascript"> function tes() { var divid = document.getElementById('div1'); if (divid.style.height == '300px') { divid.style.height = '100px'; } else { divid.style.height = '300px'; } } </script> <a href="javascript:tes();">testjavas1</a> <div id="div1" class="stylediv" style="height:300px"> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> <li>10</li> <li>11</li> <li>12</li> <li>13</li> <li>14</li> <li>15</li> <li>16</li> <li>17</li> </ul> </div>
Merci d'avoir me répondre c'est urgent
bonjour j'ai juste le champ user et le champ message
Merci
Ben c'est pas suffisant, il faut rajouter la date du message.
Bonsoir merci pour votre réponse
j'ai pensé a faire un count de tous les messages d'abord et supprimer en utilisant le requête delete avec le paramètres limit 11 ,n
merci
Soit un sac avec des billes. Je mets une bille dans le sac. Je te tends le sac et je te demande de retrouver la dernière bille que j'y ai mise.
Difficile non ?
Ben une table SQL c'est la même chose. Rien ne garantit qu'avec ton LIMIT 11,n tu ne conserveras que les 10 derniers messages insérés dans la table.
Le seul moyen d'en être sûr est d'avoir une colonne qui détermine un ordre. De préférence, une colonne de date.
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 !
Bonsoir Merci pour votre aide.
J'ai ajouter le champ date à chaque nouvelle insertion d'un message
Pourriez vous me donner une idée pour effacer les anciens messages.
Merci
Bjr,
Essayez ça :
Et si ça sélectionne les bons enregistrements, on verra ensuite pour supprimer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM message M1 WHERE idmessage NOT IN (SELECT idmessage FROM message M2 WHERE M2.user=M1.user ORDER BY date DESC LIMIT 10)
Cdlt,
bonsoir merci pour ta réponse mais pourquoi select
moi je pense à faire un delete
une réponse vous a permis d'avancer ?
D'autant qu'il faudra certainement créer une table temporaires pour supprimer les enregistrements. Sous MySQL, on ne peut pas utiliser la même table dans le DELETE FROM et le WHERE !
Cette requête devrait faire l'affaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 DELETE FROM message WHERE idmessage NOT IN ( SELECT * FROM ( SELECT idmessage FROM message ORDER BY date DESC LIMIT 10 )tmp )
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager