login  Naam:   Wachtwoord: 
Registreer je!
 Forum

mysql-fout

Offline Dolfje - 20/07/2005 18:03
Avatar van DolfjeGouden medailleGouden medailleGouden medaille

PHP ver gevorderde
mysql heeft met de volgende query een probleem, terwijl ik hem niet ziet, wat doe ik fout?

SELECT * FROM index2v01 WHERE `groep` = 'javascript' AND (`status`=0 OR ( `status`=5 AND `eind` + INTERVAL 2 < NOW() )) LIMIT 10

fout:#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')) LIMIT 10' at line 1

18 antwoorden

Gesponsorde links
Offline Brycer - 20/07/2005 18:09
Avatar van Brycer HTML interesse SELECT * FROM index2v01 WHERE

moet dit niet zijn:

SELECT * FROM `index2v01` WHERE ??
Offline Dolfje - 20/07/2005 18:12
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
Dit hoeft niet, het werkt met andere query's zoals:
SELECT * FROM index2v01 WHERE groep = 'javascript'
Offline Rens - 20/07/2005 18:15 (laatste wijziging 20/07/2005 18:15)
Avatar van Rens Gouden medaille

Crew algemeen
Misschien zo:

SELECT * FROM index2v01 WHERE groep = 'javascript' AND (status=0 OR status=5) AND eind + INTERVAL 2 < NOW() ) LIMIT 10

Die backticks (`) zijn nergens voor nodig...
Offline Brycer - 20/07/2005 18:22
Avatar van Brycer HTML interesse Bij mijn host zijn ze noodzakelijk...:p
Offline Dolfje - 20/07/2005 18:25
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
Citaat:
SELECT * FROM index2v01 WHERE groep = 'javascript' AND (status=0 OR status=5) AND eind + INTERVAL 2 < NOW() ) LIMIT 10

dan krijg ik deze fout:

#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ') LIMIT 10' at line 1
Offline Ontani - 20/07/2005 18:28
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
SELECT * FROM index2v01 WHERE groep = 'javascript' AND (status=0 OR status=5) AND (eind + INTERVAL 2 < NOW() ) LIMIT 10
Offline Rens - 20/07/2005 18:30
Avatar van Rens Gouden medaille

Crew algemeen
AND eind + INTERVAL 2 < NOW()

Wat hoort dat INTERVAL 2 te doen?

Op MySQL.com zie ik er iets over staan, namelijk:
Citaat:
mysql> SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200);
-> 3
mysql> SELECT INTERVAL(10, 1, 10, 100, 1000);
-> 2
mysql> SELECT INTERVAL(22, 23, 30, 44, 200);
-> 0


En dat is toch heel anders als wat jij gebruikt.

Dus ik denk dat de fout hem zit in het gebruik van INTERVAL 2, weet alleen niet wat je er aan zou kunnen veranderen om het te laten werken.
Alleen haakjes eromheen zetten zal niet veel helpen denk ik:?:
Offline Dolfje - 20/07/2005 19:21
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
hierop staat de uitleg van INTERVAL http://dev.mysq...tions.html
Offline Rens - 20/07/2005 19:27
Avatar van Rens Gouden medaille

Crew algemeen
Ah, vandaar dat het niet klopte, jouw code en wat ik had gevonden.
Ik had iets heel anders gevonden.
Ik vond dit namelijk:
http://dev.mysq...ators.html
Offline Dolfje - 20/07/2005 20:27
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
Citaat:
SELECT * FROM index2v01 WHERE groep = 'javascript' AND (status=0 OR status=5) AND (eind + INTERVAL 2 < NOW() ) LIMIT 10


maar hier wordt er geen rekening gehouden dat die check van (eind + INTERVAL 2 < NOW() ) er alleen maar moet zijn als de status 5 is.
Offline Ontani - 20/07/2005 20:28
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
SELECT * FROM index2v01 WHERE groep = 'javascript' AND (status=0 OR (status=5 AND eind + INTERVAL 2 < NOW())) LIMIT 10
Offline Gerard - 20/07/2005 20:29
Avatar van Gerard Ouwe rakker zet je queries eens op meerdere regels zodat je kan zien waar het probleem zit.

je kan btw ook doen

WHERE groep = 'javascript' AND status IN (0,5)
Offline Dolfje - 20/07/2005 20:53
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
Citaat:
SELECT * FROM index2v01 WHERE groep = 'javascript' AND (status=0 OR (status=5 AND eind + INTERVAL 2 < NOW())) LIMIT 10


dit is dezelfde query die ik vanboven postte,
dit werkt dus om 1 of andere manier niet 

Citaat:
zet je queries eens op meerdere regels zodat je kan zien waar het probleem zit.

SELECT * FROM index2v01 WHERE
groep = 'javascript'
AND (status=0 OR (status=5 AND eind + INTERVAL 2 < NOW()))
LIMIT 10

zie het probleem nog altijd niet 
Offline remcobers - 20/07/2005 20:59
Avatar van remcobers PHP expert Welke fout geeft hij dan aan? Welke regel. Dan kan je zien waar het precies zit.
Offline Ibrahim - 21/07/2005 09:11 (laatste wijziging 21/07/2005 09:15)
Avatar van Ibrahim PHP expert
  1. <?php
  2. SELECT * FROM index2v01 WHERE groep = 'javascript' AND (status=0 OR ( status=5 AND eind + INTERVAL 2 < NOW() )) LIMIT 10
  3. ?>


heb de quotes weggehaalt bij de namen voor de "=" teken
Offline Dolfje - 21/07/2005 20:07
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
  1. SELECT * FROM index2v01
  2. WHERE groep = 'javascript'
  3. AND
  4. (
  5. status=0
  6. OR
  7. (
  8. status=5
  9. AND
  10. eind + INTERVAL 2 < NOW()
  11. )
  12. )
  13. LIMIT 10

nog altijd dezelfde fout, maar bij regel 11
Offline Maarten - 21/07/2005 20:26
Avatar van Maarten Erelid probeer anders eens door

eind + INTERVAL 2 < NOW()

te vervangen door

(eind + INTERVAL 2 < NOW())

?
Offline Dolfje - 21/07/2005 21:17
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
Heb mijn fout gevonden en het is een stomme ook.


(eind + INTERVAL 2 DAY< NOW()) ipv
(eind + INTERVAL 2 < NOW())

:s
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.194s