login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Automatische delete...

Offline Nman - 02/11/2008 01:42
Avatar van NmanPHP interesse Beste sitemasters,

Ik heb eens rondegekeken hier, en ook op google , maar ik vind niet wat ik zoek.

Ik zou een top 5 willen maken waar leden hun site kunnen invoeren. Maar ze kunnen maar 1 site per keer, dit kan ik doen d.m.v userid. Maar ik zou moeten weten hoe ik in de tabel altijd maar 5 records kan hebben , dus zodra er een 6de komt, moet de eerste gezette verwijderen. Anders blijft hij zeggen dat hun site er al instaat, maar hij staat dan in de database, maar niet op de site, dus daarom mogen er steeds maar 5 rijen in staan. Kan iemand mij hiermee helpen?

7 antwoorden

Gesponsorde links
Offline Abbas - 02/11/2008 02:19 (laatste wijziging 02/11/2008 02:22)
Avatar van Abbas Gouden medaille

Crew .NET
Ok, je had je uitleg met vijf zinnen minder kunnen vertellen om uit te leggen wat je bedoelt maar swat. Die tabel heeft waarschijnlijk een auto-nummering en aangezien de oudere ingevoerde sites een lager getal als ID hebben kan je het zo doen bij het toevoegen van een nieuwe rij:

  1. $user = 1; //waarschijnlijk haal je dit nu uit een cookie ofzo
  2. $strQuery = "DELETE FROM tblNaam WHERE id = (SELECT MIN(id) FROM tblNaam WHERE userId = '".$user."')";

Je gaat dus het laagste ID selecteren van de vijf rijen een bepaald persoon, en dat ID gebruik je om de desbetreffende rij te verwijderen. Die delete doe je best pas als de gebruiker al 5 top-sites heeft opgegeven, en niet nog maar 3 of 4 ofzo.

Veel succes! 
Offline Nman - 02/11/2008 03:02
Avatar van Nman PHP interesse Toch bedankt, maar wat ik juist bedoel is dit :

Leden kunnen op mijn site hun website invoeren, er is ook een toplijst met IN en UIT kliks enzo.

Nu wil ik rechtsboven op mijn site een Top 5 laten verschijnen, en alles lukt zeer goed. De leden kunnen kiezen uit 1 van hun site's, voeren een titel in en klikken op doorgaan. Dan word hun site in de top 5 geplaatst rechtsboven, iedereen kan dit met zijn website's, maar ze kunnen wel maar 1 site per keer laten zien. Dus ik kijk of het userid er al instaat, zoja kan hij niets plaatsen, zonee kan hij weer plaatsen.

dus stel er zijn 6 site's, dan zal de 1 geplaatste niet meer te zien zijn. deze moet dan verwijderd worden, want anders gaat hij nog altijd zeggen dat het userid al een site heeft staan, ookal staat deze niet meer zichtbaar.

Snap je wat ik bedoel? Dus ik wil iets dat altijd de oudste verwijderd, stel er zijn 6 rijen, de laatste nieuwe blijven, de oudste word gedelete
Offline Joost - 02/11/2008 11:21
Avatar van Joost PHP expert Hij geeft de query daar toch voor 

Je kijkt eerst met een num_rows of er 6 records zijn, zoja, voer die query van titjes uit.
Offline Nman - 02/11/2008 16:41
Avatar van Nman PHP interesse
  1. $alles_selecteren="SELECT * FROM top10";
  2.  
  3. if(mysql_num_rows($alles_selecteren)=='5'){
  4. mysql_query("DELETE * FROM top10 ORDER BY ID asc LIMIT 1") or die(mysql_error());
  5. }
Offline Abbas - 02/11/2008 16:48 (laatste wijziging 02/11/2008 16:50)
Avatar van Abbas Gouden medaille

Crew .NET
Wat je doet is al fout, want je zei dat meerdere gebruikers 5 favorieten kunnen invoegen, dus de kans dat de num_rows() '5' teruggeeft is al zo goed als nihil! En je kan ook best maar 1 kolom selecteren om te weten of er al vijf sites zijn van een gebruiker en niet alles (*). Je kan anders ook met een COUNT() werken

  1. $user = $_COOKIE["userId"]; //of iets dergelijks
  2.  
  3. //zonder COUNT()
  4. $allesVanSingleUser = "SELECT id FROM top10 WHERE userId = '".$user."'";
  5. //dan die mysql_num_rows()
  6.  
  7. //met COUNT()
  8. $allesVanSingleUser = "SELECT COUNT(id) FROM top10 WHERE userId = '".$user."'";
  9.  
  10. //en als dat dan groter dan of gelijk is aan vijf,
  11. //gebruik je de query die ik je al eerder gaf
Offline Nman - 02/11/2008 16:53
Avatar van Nman PHP interesse neeen, wat ik bedoel is dit :

ik wil een top 5 waar leden een site kunnen in plaatsen

een top 5 zijn gewoon 5 site's die leden kunnen invoeren voor credits en ze kunnen 1 van hun sites kiezen uit mijn systeem

het is dus niet dat elk lid 5 sites moet opgeven ofzo , het is gewoon iets waar leden hun site kunnen in promoten , maar er mogen altijd maar 5 rijen zijn want ze kunnen maar 1 site per keer plaatsen, dus zodra hij uit de top 5 is kunnen ze een andere plaatsen, en iedereen kan site's plaatsen
Offline Wim - 02/11/2008 17:02
Avatar van Wim Crew algemeen haal die WHERE userid=... dan weg en het script werkt toch? Ik denk dat je best eens naar een boekenwinkel gaat en een boek over php/mysql koopt...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.221s