[mysql] while statement syntax error

Pagina: 1
Acties:
  • 133 views

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik probeer gegegevens uit een mysql 5.0 database te krijgen met de volgende loop:
PHP:
1
2
3
4
5
6
7
8
9
10
$q = "
CREATE PROCEDURE dowhile()
BEGIN 
DECLARE a INT SET a = '20100317125';

    while a != '20100317115'
        SELECT COUNT(`easId`) 'count', a FROM `eeh_articles_seen` GROUP BY  a ORDER BY a DESC;
        SET a = a- 1;
    END WHILE
END";


Ik krijg alleen steeds de volgende fout:
MySQL:
1
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 'INT SET a = '20100317125'; while a != '20100317115' SELECT COUNT(`easId`)' at line 3


Het lukt me niet de fout te verklaren, zelfs de voorbeeld code van MYSQL geeft de zelfde fout melding.

Ik ben niet zo bekend met WHILE loops in mysql dus het kan zijn dat ik iets vanzelfsprekends over het hoofd zie.

Acties:
  • 0 Henk 'm!

Verwijderd

END WHILE;

[ Voor 144% gewijzigd door Verwijderd op 17-03-2010 13:48 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Geeft de zelfde fout.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Er staat toch echt "DECLARE a INT DEFAULT 20100317125" als juiste syntax. Je geeft je eigen draai aan de syntax, duwt vervolgens een string in een int-veld en verderop verkloot je ook een alias. SELECT COUNT(`easId`) 'count' gaat niet werken, SELECT COUNT(`easId`) `count` of SELECT COUNT(`easId`) AS `count` wel. En als ik toch bezig ben: "a" is wel een héél slechte naam voor een veld in je database; ik weet ook niet hoe MySQL ermee omgaat dat je een variabele hebt met dezelfde naam als een veld dat je selecteert.

Misschien moet je er nog even een boek bij pakken? ;)

Ook: Waar hoort mijn topic?
SEA>>PRG

[ Voor 4% gewijzigd door NMe op 17-03-2010 13:48 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De alias in de selectie mag geshorthanded worden. Volgens mij mogen beide methodes gebruikt worden.
De query zonder de while statement werkt naar behoren.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op woensdag 17 maart 2010 @ 13:48:
De alias in de selectie mag geshorthanded worden. Volgens mij mogen beide methodes gebruikt worden.
De query zonder de while statement werkt naar behoren.
Hij mag best shorthanded worden maar volgens niet met gewone quotes, wel met backticks. En de rest van mijn post blijft daarbij ook gewoon staat. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:25

Creepy

Tactical Espionage Splatterer

Je boek erbij pakken is 1, en als je dan toch aan het lezen gaat: lees ook het PRG Beleid eens door (die sticky topics staan er niet voor niets ;) ) Iets als een syntax error moet je vrij simpel zelf kunnen vinden. Los daarvan hoort je topic ook nog eens niet thuis in SEA maar in PRG. Ik ga je topic echter gelijk sluiten want iets als dit is gewoon een kwestie van logisch naar de code kijken en even de handleiding of je boek erbij pakken.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.