Ik heb dus een shoutbox gemaakt, maar nu moet hij alles verwijderen behalve de laatste 5.
zo verwijderd hij alles:

<?
mysql_query("DELETE FROM Shoutbox$team")or die (mysql_error());

?>

iemand een idee?
Je moet met LIMIT werken, en op id sorteren denk ik.
Maar heb nu geen zin om het uit te zoeken, sorry :p

[edit]
Variabelen BUITEN qoutes a.u.b.
[/edit]
haha, jahh limit ik wist idd dat ik in die hoek moest zoeken, maar hoe. als ik zet LIMIT 5 zal het niet werken.

Andries Louw W. schreef op 29.08.2006 12:06

[edit]
Variabelen BUITEN qoutes a.u.b.
[/edit]


Deze varibael moet binnen de quote omdat het een database naam is dus Shoutbox$team
ik ben er uit!

De oplossing
<?

mysql_query("DELETE FROM Shoutbox$team ORDER BY id ASC LIMIT 5")or die (mysql_error());
?>
Ik ben er dus niet uit,

Dit verwijderd de oudste 5 berichten ipv alles behalve de nieuwste 5.

iemand alsnog een idee?
ORDER BY id DESC
zo effe uit mijn hoofd.
En je punt over buiten/binnen quotes begrijp ik niet
Webmakerij schreef op 29.08.2006 14:13
ORDER BY id DESC
zo effe uit mijn hoofd.
En je punt over buiten/binnen quotes begrijp ik niet


order bij id DESC dan verwijderd hij dus de laatst geposte 5 berichten.

Buiten/ binnen de quotes dit heeft te maken met het aanroepen van $team, die moet binnen de quotes omdat de shoutbox in de database Shoutbox met daar direct een team naam achter dus bijvoorbeeld ShoutboxHeren1
Je moet gewoon even kijken naar het id van de laatste vijf shouts en dan doe je:

DELETE FROM tabel
WHERE ID NOT IN(1,2,3,4,5)

LET OP: zelf die 5 nummers aanpassen!
Ok :D dan weet ik welke richting ik op moet, Denk je dat het ook lukt door een query te maken met order by id DESC limit 5 en dan de query aanroepen in de Delete query?

bijvoorbeeld


$query = "SELECT * FROM Shoutbox$team ORDER BY id DESC LIMIT 5";

$result = mysql_query($query);

$r = mysql_fetch_array($result);



DELETE FROM tabel
WHERE ID NOT IN($r['id'])
ik heb nu dit, het werkt alleen nog niet zoals het hoort


while($r = mysql_fetch_array($result)){

$id     = array();
$id[] 	= $r['id'];



if(is_array($id)){

print_r ($id);

mysql_query("DELETE FROM  Shoutbox$team ORDER BY id NOT ($id)")or die (mysql_error());
 }
}


hij geeft nu aan dat je geen array in query mag hebben, iemand een idee hoe ik het dan kan oplossen?
Als je het met twee queries wilt doen, ga je zo te werk:

SELECT id
FROM tabel
ORDER BY id DESC
LIMIT 5

in je while loop kun je dan het rijtje getallen die niet gewist mogen worden aan elkaar plakken met een komma er tussen.

Reageren