Hét vraag- en antwoordplatform van Nederland

Hoe limiteer je een toevoeging in db?

ik ben bezig met een premium user systeem in PHP, en ik wil hebben dat als iemand een account registreert hij niet meer dan bijv. 5 downloads kan toevoegen(wordt opgeslagen in de database), en als hij meer wil toevoegen moet de gebruiker een premium account aanschaffen. enig idee hoe ik dit het beste kan doen met PHP en MYSQL?

ik ben een beginner en nog niet zo gevorderd met PHP.

Alvast bedankt!!

Verwijderde gebruiker
12 jaar geleden
807

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Het beste antwoord

Zorg ervoor dat elke gebruiker in de database een column heeft met daarin een standaard waarde van 0, en van het data type tiny integer (tenzei je verder dan 255 wil kunnen tellen, dan kun je beter een integer gebruiken).

Als iemand dan vraagt voor een download, dan zorg je er eerst voor dat je in de database kijkt, of de desbetreffende gebruiker al meer dan 5 downloads heeft.
Dat kan op deze manier:

$sql = "SELECT * FROM tabel_gebruiker WHERE gebruiker_id = ".$gebruiker_id." AND downloadCount <= 5;";
$result = mysql_query($sql);

if(mysql_num_rows($result) != 0)
{
mysql_query("UPDATE tabel_gebruiker SET downloadCount = downloadCount + 1 WHERE gebruiker_id = ".$gebruiker_id.";");
//Hier stuur je de download.
}
else
{
//Hier verwijs je naar een "word premium" pagina.
}

In de sql statement vraag ik naar alle rijen, met de desbetreffende gebruiker ID, die minder dan 5 downloads heeft.
Als hij er 1 vind, dan heeft hij dus minder dan 5 downloads, en als hij er 0 vind, dan heeft hij dus meer.

Voordat je de download stuurt, zorg je ervoor dat er 1 download in de tabel wordt opgeteld, en daarna kun je de file sturen.

Let wel op dat je de variabele die mee gaan in de query, eerst "escapt", om sql injectie te voorkomen.

Toegevoegd na 1 minuut:
Ik heb de code trouwens uit losse hand geschreven, dus het kan best dat hij niet helemaal werkt.*
(Lees meer...)
Verwijderde gebruiker
12 jaar geleden
Verwijderde gebruiker
12 jaar geleden
bedankt!

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 2500
Gekozen afbeelding