Avatar billede dellevela Nybegynder
30. marts 2003 - 11:22 Der er 6 kommentarer og
1 løsning

slet fra neden

jeg har en database der hele tiden bliver fyldt mega hurtigt. jeg vil så gerne have at den skal slette nogle at de nederste. alså fx. der er intastet 5 beskeder:
1hej
2ose
3asd
4dsa
5hmm

så når der bliver skrevet en til besked skal den slette den nederste alså hmm hvordan laver man det? min database ser sådan her ud!
# --------------------------------------------------------

#
# Struktur dump for tabellen `message`
#

CREATE TABLE message (
  id int(50) NOT NULL auto_increment,
  brugernavn varchar(50) NOT NULL default '',
  besked longtext NOT NULL,
  rum varchar(50) NOT NULL default '',
  tid varchar(50) NOT NULL default '',
  til varchar(6) NOT NULL default '',
  UNIQUE KEY id (id)
) TYPE=MyISAM;

#
# Data dump for tabellen `message`
#
# --------------------------------------------------------
Avatar billede Thomas Nybegynder
30. marts 2003 - 11:27 #1
Hvorfor ikke slette ud fra din "tid"?
Og når du siger "nederste", mener du så besked 1 eller besked 5?
Avatar billede tangveje Nybegynder
30. marts 2003 - 11:29 #2
Prøv med denne

DELETE FROM message ORDER BY id DESC LIMIT 1

Ved ikke om den virker, men måske :)
Avatar billede ahv Nybegynder
30. marts 2003 - 11:39 #3
En løsning ville nok være denne (Du mener vel den skal slette den øverste besked i databasen ? Da de nyeste jo kommer nederst.)
Men hvert fald kan dette jo rettes hvis det er.

$msg = mysql_query("SELECT id FROM message");
if(mysql_num_rows($online) > 100){
$delete = "DELETE FROM message ORDER BY ID ASC LIMIT 1";
mysql_query($delete);
Avatar billede ahv Nybegynder
30. marts 2003 - 11:40 #4
Lidt fejl:

$msg = mysql_query("SELECT id FROM message");
if(mysql_num_rows($msg) > 100){
$delete = "DELETE FROM message ORDER BY ID ASC LIMIT 1";
mysql_query($delete);

Denne vil så slette når der er over 100 beskeder.
Avatar billede dellevela Nybegynder
30. marts 2003 - 12:03 #5
kan jeg ikke insætte noget i databasen?
Avatar billede dellevela Nybegynder
30. marts 2003 - 12:03 #6
for er ikke så god til det der php! (ejer ikke den her bruger har lånt den)
Avatar billede ahv Nybegynder
30. marts 2003 - 12:19 #7
Mit forslag burde virke, det skal blot sættes der ind hvor alle beskederne sættes ind, så burde den selv slette så der kun er 100 i databasen.

Men ellers hvis du trækker alle disse dataer ud (i en chat f.eks.) Så kan du jo bare til sidst i din select streng skrive LIMIT 30, så viser den kun 30 beskeder.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester