Er gaat wat mis met mijn queries

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arthur Nolles

Arthur Nolles

28/07/2017 16:35:25
Quote Anchor link
Ik heb een adressen bestand dat helaas in twee delen verstuurd moet worden, op twee verschillende systemen. Mensen met een microsoft account krijgen een mail van het ene systeem, de rest van een ander systeem. Dit vanwege de spam regels. Microsoft wil geen php mail hebben.

Met een query probeer ik de boel uit elkaar te houden. Voor het microsoft systeem heb ik:

SELECT *
FROM subscribers
WHERE blacklisted = '0'
AND email LIKE '%outlook.com'
OR email LIKE '%hotmail.com'
OR email LIKE '%live.com'
OR email LIKE '%msn.com'
ORDER BY id
DESC LIMIT 0,200");

Het gekke is dat hij op zich goed scheidt, maar dat ook de mensen die bij blacklist een '1' hebben staan mail krijgen. Hoe kan dat? Ik snap daar niks van.

Dan nog een probleempje. Ik dacht, ik pas de query aan en zet overal NOT voor, voor het andere systeem:

SELECT *
FROM subscribers
WHERE blacklisted = '0'
AND email NOT LIKE '%outlook.com'
OR email NOT LIKE '%hotmail.com'
OR email NOT LIKE '%live.com'
OR email NOT LIKE '%msn.com'
ORDER BY id DESC
LIMIT 0 , 200

Hierbij krijg ik gewoon een lijst met alle hotmail etc adressen er gewoon in. Weet iemand wat ik verkeerd doe?
 
PHP hulp

PHP hulp

21/12/2024 15:55:59
 
- SanThe -

- SanThe -

28/07/2017 16:41:24
Quote Anchor link
Bij AND en OR gebruik haakjes.

... AND (... OR ...)
of
(... AND ...) OR ...
Gewijzigd op 28/07/2017 16:42:28 door - SanThe -
 
Adoptive Solution

Adoptive Solution

28/07/2017 16:47:44
Quote Anchor link
Probeer dit eens

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
SELECT *
FROM subscribers
WHERE blacklisted = '0'
AND
(
email LIKE '%outlook.com'
OR email LIKE '%hotmail.com'
OR email LIKE '%live.com'
OR email LIKE '%msn.com'
)
ORDER BY id
DESC LIMIT 0,200");


Zie ook topic "php wiskunde een pré"
 
Arthur Nolles

Arthur Nolles

28/07/2017 17:15:47
Quote Anchor link
Die werkt, Adaptive Solution. Maar hij werkt niet bij de NOT.

SELECT *
FROM subscribers
WHERE blacklisted = '0'
AND
(
email NOT LIKE '%outlook.com'
OR email NOT LIKE '%hotmail.com'
OR email NOT LIKE '%live.com'
OR email NOT LIKE '%msn.com'
)
ORDER BY id
DESC LIMIT 0,200

Hierbij krijg ik gewoon hotmail en live adressen er doorheen.
Gewijzigd op 28/07/2017 17:17:25 door Arthur Nolles
 
Adoptive Solution

Adoptive Solution

28/07/2017 17:23:23
Quote Anchor link
En dit ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
NOT (
email LIKE '%outlook.com'
OR email LIKE '%hotmail.com'
OR email LIKE '%live.com'
OR email LIKE '%msn.com'
)
 
- SanThe -

- SanThe -

28/07/2017 17:26:50
Quote Anchor link
Stel in email zit hotmail.com
Quote:
email LIKE '%outlook.com'
OR email LIKE '%hotmail.com'
OR email LIKE '%live.com'
OR email LIKE '%msn.com'

Geeft false or true or false or false is dus true.

Quote:
email NOT LIKE '%outlook.com'
OR email NOT LIKE '%hotmail.com'
OR email NOT LIKE '%live.com'
OR email NOT LIKE '%msn.com'

Geeft true or false or true or true is dus true.
 
Arthur Nolles

Arthur Nolles

28/07/2017 17:51:21
Quote Anchor link
Dat was de oplossing, Adoptive Solution! Bedankt
 
Ivo P

Ivo P

28/07/2017 18:17:21
Quote Anchor link
of
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
SELECT *
FROM subscribers
WHERE blacklisted = '0'
AND
email NOT LIKE '%outlook.com'
AND email NOT LIKE '%hotmail.com'
AND email NOT LIKE '%live.com'
AND email NOT LIKE '%msn.com'


aangezien je dan juist wél aan alle voorwaarden moet voldoen (ook aan alle negatieve)
Gewijzigd op 28/07/2017 18:18:15 door Ivo P
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.