[php + interbase] SELECT ....... LIMIT

Pagina: 1
Acties:
  • 284 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik wil graag iets maken voor een 'forumpje' met interbase/php
waarmee ik bijv. 30 berichten per pagina kan laten zien.

Maar nu het probleem... interbase kent geen LIMIT zoals Mysql dat heeft :(
Ik heb niet echt veel (duidelijke) informatie kunnen vinden

Heeft iemand hier misschien een oplossing?

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Kent ie wel TOP zoals MsSQL?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

Verwijderd

Dat heet in Interbase/Firebird FIRST x SKIP y

edit:
Dus wil je de eerste 30 doe je SELECT FIRST 30 SKIP 0 * from ... etc
De volgende 30 wordt dan SELECT FIRST 30 SKIP 30 * from ...

edit2:
En FIRST en SKIP zijn beide optioneel (onafhankelijk van elkaar).

edit3 (tja, ik kan niet ophouden ;) ):
Nu moet je het wel redden, zeker met die link van LuCarD er bij.
btw, leuke nick ;)

[ Voor 99% gewijzigd door Verwijderd op 12-05-2004 11:27 ]


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 12 mei 2004 @ 11:23:
Dat heet in Interbase/Firebird FIRST x SKIP y

edit:
Dus wil je de eerste 30 doe je SELECT FIRST 30 SKIP 0 * from ... etc
De volgende 30 wordt dan SELECT FIRST 30 SKIP 30 * from ...

edit2:
En FIRST en SKIP zijn beide optioneel (onafhankelijk van elkaar).

edit3 (tja, ik kan niet ophouden ;) ):
Nu moet je het wel redden, zeker met die link van LuCarD er bij.
btw, leuke nick ;)
ah :)
maar dan doe ik zeker iets niet goed

SELECT FIRST 5 SKIP 0 faq_id,wn_id,faq_titel,faq_datum FROM faq WHERE FAQ_TYPE = '1' ORDER BY faq_id DESC

zo zou het toch goed moeten zijn ?
het werkt namelijk niet

Acties:
  • 0 Henk 'm!

Verwijderd

En als je voor de test even dit probeerd?
code:
1
SELECT FIRST 5 SKIP 0 * FROM FAQ


trouwens, 'het werkt niet'? Wat geeft ie voor fout?

[ Voor 24% gewijzigd door Verwijderd op 12-05-2004 11:48 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
helaas nog steeds dezelfde fout :
Warning: InterBase: Dynamic SQL Error SQL error code = -104 Token unknown - line 1, char 13 5 in c:\phpdev\www\public\knowledge-base\problemen.php on line 78

Acties:
  • 0 Henk 'm!

Verwijderd

Hmm, tja, het ziet er op zich goed uit. En wanneer je de first helemaal weglaat? Dus alleen skip? Geeft ie daar dan ook een fout op?

(ik ga er van uit dat je select zonder het hele first/skip gebeuren het gewoon doet)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja zonder first/skip werkt het helemaal goed hoor...

en als ik FIRST weglaat krijg ik weer dezelfde error maar dan bij skip

Warning: InterBase: Dynamic SQL Error SQL error code = -104 Token unknown - line 1, char 12 0 in c:\phpdev\www\public\knowledge-base\problemen.php on line 78

best wel vreemd

Acties:
  • 0 Henk 'm!

Verwijderd

Hmm, ik realiseer me net dat ik van Firebird uitga (de open-source variant van Interbase). In Interbase gebruik je ROWS etc (zie de link van LuCarD).

Je geeft aan dat je Interbase gebruikt, dus misschien dat het met ROWS beter lukt?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
even wat dingen geprobeerd...
--------------------------------------------
SELECT faq_id,wn_id,faq_titel,faq_datum FROM faq ROWS 1 TO 5

Warning: InterBase: Dynamic SQL Error SQL error code = -104 Token unknown - line 1, char 54 1 in c:\phpdev\www\public\knowledge-base\problemen.php on line 78
--------------------------------------------
SELECT faq_id,wn_id,faq_titel,faq_datum FROM faq WHERE FAQ_TYPE = '1' ORDER BY faq_id DESC ROWS 1 TO 5

Warning: InterBase: Dynamic SQL Error SQL error code = -104 Token unknown - line 1, char 91 ROWS in c:\phpdev\www\public\knowledge-base\problemen.php on line 78
--------------------------------------------
dat wou dus niet.. hmz

Acties:
  • 0 Henk 'm!

Verwijderd

Ok, dat is het dus ook niet.
Maar gebruik je nu Firebird of Interbase? En welke versie (precies, incl buildnr als het kan)?

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
** For InterBase: ***
SELECT ... [ROWS <value> [TO <upper_value>] [BY <step_value>] [PERCENT] [WITH TIES]]

* <value> is the total number of rows to return if used by itself
* <value> is the starting row number to return if used with TO
* <value> is the percent if used with PERCENT
* <upper_value> is the last row or highest percent to return
* If <step_value> = n, returns every n'th row, or n percent rows
* PERCENT causes all previous ROWS values to be interpreted as percents
* WITH TIES returns additional duplicate rows when the last value in the ordered sequence is the same as values in subsequent rows of the result set; must be used in conjunction with ORDER BY

bindLimitParametersFirst() --> false
bindLimitParametersInReverseOrder() --> false


edit:

oeps, lezen is moeilijk



http://opensource.atlassi...s/hibernate/browse/HB-293

[ Voor 8% gewijzigd door Noork op 12-05-2004 13:05 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Noork schreef op 12 mei 2004 @ 13:02:
** For InterBase: ***
SELECT ... [ROWS <value> [TO <upper_value>] [BY <step_value>] [PERCENT] [WITH TIES]]

* <value> is the total number of rows to return if used by itself
* <value> is the starting row number to return if used with TO
* <value> is the percent if used with PERCENT
* <upper_value> is the last row or highest percent to return
* If <step_value> = n, returns every n'th row, or n percent rows
* PERCENT causes all previous ROWS values to be interpreted as percents
* WITH TIES returns additional duplicate rows when the last value in the ordered sequence is the same as values in subsequent rows of the result set; must be used in conjunction with ORDER BY

bindLimitParametersFirst() --> false
bindLimitParametersInReverseOrder() --> false


http://opensource.atlassi...s/hibernate/browse/HB-293
Lezen is moeilijk :)
Dat heeft de TS dus al geprobeerd.

edit:
edit:
oeps, lezen is moeilijk
/me plakt ondertitel hier maar weer 'ns neer... ;)

[ Voor 17% gewijzigd door Verwijderd op 12-05-2004 13:11 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik maak gebruik van InterBase Server-WI-V6.0.1.0 en PHP/4.2.3

[ Voor 12% gewijzigd door Verwijderd op 12-05-2004 13:39 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Je zou kunnen controleren of FIRST/SKIP al in die versie aanwezig is, maar dat lijkt me wel.
Iets anders kan ik echter niet bedenken. Misschien dat je 'ns in de nieuwsgroepen kunt kijken?
Overigens ben ik wel benieuwd naar je (eventuele) oplossing, dus die mag je hier dan natuurlijk wel posten :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben er al achter dat ROWS alleen in interbase 6.5 of hoger werkt... hier hebben we 6.0 dus dat zal helaas niet gaan dan ;(

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 14 mei 2004 @ 10:15:
Ik ben er al achter dat ROWS alleen in interbase 6.5 of hoger werkt... hier hebben we 6.0 dus dat zal helaas niet gaan dan ;(
Tja, dan zit er weinig anders op dan te upgraden naar 6.5, over te stappen of Firebird, of je sql zo schrijven dat je het zelf kunt (dus bijv adv datum oid je posts laten zien ipv gewoon tellen). Voor dat laatste kun je natuurlijk ook een stored procedure schrijven die bekijkt tussen welke data/datums de hoeveel records liggen die jij wilde hebben. Hij kan ze dan ook teruggeven.
Echt een mooie manier is het niet, maar het voor the-time-being misschien een oplossing.

Succes er mee verder.
Pagina: 1