Hallo
$abfrage = "SELECT ... FROM kampagne WHERE id != '8' AND id !='5' AND ...";
Erst wird die Datenbank mit den gespeicherten IPs ausgelesen und übergibt der zweiten Abfrage die Kampagnen IDs die noch in der Sperre sind.
Du begehst einen typischen Anfängerfehler und baust Joins bzw. hier ein Subselect mit PHP nach.
Wie von suit bereits erwähnt ist
WHERE id NOT IN (
SELECT <böse IDs>)
sehr einfach und sehr elegant. Nein, es gibt keine zwei getrennten Abfragen.
Voraussetzung: MySQL 4.1 oder neuer ...
Freundliche Grüße
Vinzenz