Wat nu als je alles gewoon in 1 keer in een query doet....?
SELECT ip, host
FROM proxies
WHERE ip = ....
OR host = ....
(en dan natuurlijk iets invullen op de puntjes)
Krijg je hier 1 of meer records uit dan bestaat het al, krijg je geen records terug dan bestaat het nog niet.
Overigens kan het zelfs nog makkelijker als je een unieke index zet op ip, host. Probeer je dan een record in te voeren dat ip en host gelijk heeft, dan wordt de insert niet uigevoerd. Je krijgt dan wel een warning terug, maar daar hoef je dan gewoon niets mee te doen. Heb je dus ook geen check nodig.
Heb je uberhaupt mijn post wel gezien?
Wat je nu doet is echt volkomen verkeerd. Je haalt alle hosts op, dan alle ip adressen en bekijkt dan of twee variabelen zijn gezet. Ik ga je zeggen die isset() functies (beide) leveren ALTIJD true op. Zelfs als er geen enkel record in de database staat en zelfs als de query fout zou gaan. Je checkt dus helemaal NIETS!
@dave kijk is naar wat Erwin zegt. als je zijn manier volgt krijg je het goed wat je nu doet is kijken of de 2 waardes er zijn. dus je zal altijd een true terugkrijgen
wat je nu doet is SELECT rij1 FROM table en SELECT rij2 FROM table en dan kijk je bestaan de 2 rijen? maar de waardes in die rijen daar kijk je helemaal niet naar
je query moet dan zoiets worden: SELECT rij1, rij2 FROM table WHERE ....=.... AND ....=.....