Besser wäre es eigene tabellen für reloads und die werbedaten zu verwenden.alleine schon der performance halber.

Des weiteren schreibst du die uid mit in die reloadsperre und checkst beim auslesen ob diese in der reloadsperre ist und das ist völliger quatsch da bei ein headerviewbanner den banner ja auch ausgeloggte user sehen und dann ist die uid 0...es reicht wenn nach der ip geschaut wird und auch nur die ip eingetragen wird in den reload.

Was ich auch nicht sehe wo die menge abgezogen wird...
Fehlt da nicht win query alle UPDATE SET menge-1 oder sowas?
oder bin ich blind?