login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Priveberichten na 50 automatisch verwijderen

Offline Micron - 19/08/2006 18:58 (laatste wijziging 19/08/2006 21:43)
Avatar van MicronHTML beginner Hoi,

Ik wil in mijn priveberichten systeem bouwen dat als er 50 berichten in je inbox staan, en iemand stuurt er nog ééntje bij dat het allerlaatste bericht automatisch word verwijderd. Dus er staan altijd maar 50 berichten van een gebruiker in de database.

In de middag vroeg ik of iemand mij op weg kon helpen. Ik ben aan de hand van de ene reactie begonnen. Ik heb nu het volgende (zie de plaatscode.be) maar hij verwijderd de laatste nog steeds niet .

Iemand die mij verder kan helpen?

http://www.plaatscode.be/2130/

Tjow.

6 antwoorden

Gesponsorde links
Offline Ontani - 19/08/2006 19:00
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
eerst tellen als het gelijk is aan 50 dan verwijder je het privebericht met de laagste datum.
Offline Micron - 19/08/2006 21:43
Avatar van Micron HTML beginner Beginpost aangepast met nieuwe vraag.
Offline Maarten - 19/08/2006 21:48 (laatste wijziging 19/08/2006 21:52)
Avatar van Maarten Erelid Ten eerste doe je tellen niet met SELECT * FROM blaat etc, maar als volgt:
  1. SELECT COUNT(id) FROM priveberichten WHERE gebruiker = x

Die query haal je dan door mysql_result(mysql_query(QUERY HIER),0);
En dat is dus het aantal.

De laatste PM selecteer je met SELECT query, waar je sorteert op datum (oplopen, dus de oudste eerst), en een LIMIT van 1.

Dat klopt dus min of meer nu, op 1 ding na:
  1. $last_query = mysql_query("SELECT id FROM priveberichten WHERE naar = '".addslashes($_GET['uid'])."' ORDER BY datum ASC LIMIT 1");
  2. $last = $last_query[id];


Je hebt daar geen fetch functie, dus mysql_fetch_assoc of iets dergelijks.

En wat ik me ook afvraag: waarom zet je overal die addslashes($_GET['uid']), aan de naam zou ik afleiden dat dit enkel een NUMMER kan zijn? Als iemand via de URL een woord of iets dergelijks zou ingeven kan je toch gewoon bovenaan controleren met ctype_digit() of het al dan niet numeriek is? En dan moeten die enkele quotes rond die nummers ook niet in je query. En die addslashes dus helemaal niet.

Overigens had ik die reactie verwijderd omdat dat de pap in de mond geven was, en je daar dus niks van bijleert.
Offline Richard - 20/08/2006 07:47
Avatar van Richard Crew algemeen Als je alleen de laatste PM verwijdert, kun je toch ook gewoon zoiets doen:

  1. DELETE FROM
  2. priveberichten
  3. WHERE
  4. naar = x
  5. ORDER BY
  6. datum ASC
  7. LIMIT
  8. 1
Offline ikkedikke - 20/08/2006 10:50 (laatste wijziging 20/08/2006 10:50)
Avatar van ikkedikke PHP expert maar dan weet je niet of het de laatste is.
als je het zo doet:
  1. DELETE FROM
  2. priveberichten
  3. WHERE
  4. naar = x
  5. ORDER BY
  6. datum DESC
  7. LIMIT
  8. 50,1

doetie het wel altijd. dan hoef je ook niet te checken of er wel 50 staan.
Offline blub - 20/08/2006 13:48
Avatar van blub Nieuw lid
  1. echo "Je bent heus niet de enigste naar wie je een berichtje kan sturen hoor ;). <br />


enigste = enige 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.197s