[php/mysql] kan db paging alleen met asp/mssql ?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • shades
  • Registratie: September 2001
  • Laatst online: 14-07 13:45
Op mijn werk heeft een e.o.a. grappenmaker het licht gezien en wil alles overzetten naar php/mysql en daarna waarschijnlijk (na een jaar ofzo) de handel dumpen op linux servers.. erg leuk maar nou moet ik een app die ik in asp/mssql heb geschreven omzetten naar php/mysql of althans onderzoeken of dat moeilijk/mogelijk is.

Nou heb ik nog niet zoveel verstand van php en mysql maar ben toch aan de slag gegaan om wat dingetje te maken. Een database kan ik inmiddels al benaderen en een mssql db is met succes geconverteerd naar mysql (jammer dat er geen constrains mogelijk zijn - voor zover ik heb kunnen checken - ik kan dus niet zoals in mssql relaties leggen van 1 op veel ofzo).

In mijn applicatie maak ik gebruik van pagina (zoals hier beschreven). Nu kan ik in de php.net manuals niets vinden. Alleen de LIMIT clause in een query zelf komt in aanmerking. Is dit de manier of moet het anders (zoals dat met ado kan ?)

Ook maak ik in een aantal gevallen gebruik van stored procs.. mysql kan dit ook niet dacht. Is hier een oplossing voor.

[ Voor 7% gewijzigd door shades op 19-06-2003 21:53 ]

https://k1600gt.nl


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
Waarom wil die 'grappenmaker' alles gaan omzetten naar PHP / MySQL?
Een foute beslissing imho als die gewoon op basis van 'voorkeur van taal ofzo gemaakt wordt.

Sql Server is namelijk een volwaardige Relationele Databank, itt tot MySQL. Beter zou zijn dat je overstapt van ASP naar ASP.NET, dat ook een serieuze verbetering is tov ASP en PHP.
Dit is gewoon de know-how die in het bedrijf reeds aanwezig weggooien en zorgt voor een heleboel kosten en frustraties.

Zoals je dus idd zelf al hebt ontdekt ontbreken heel wat basisfunctionaliteiten bij MySQL. De vraag is dan ook of die 'grappenmaker' daar wel beslissingsrecht over heeft. Is het je baas of een manager ofzo? Vraag hem eens wat zijn motivatie is om naar een ander systeem over te stappen.

Paging kan je in ASP.NET trouwens heel makkelijk doen: Gewoon de AllowPaging property van de DataGrid op true zetten.

[ Voor 8% gewijzigd door whoami op 19-06-2003 22:04 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • shades
  • Registratie: September 2001
  • Laatst online: 14-07 13:45
whoami schreef op 19 June 2003 @ 22:02:
Waarom wil die 'grappenmaker' alles gaan omzetten naar PHP / MySQL?
Een foute beslissing imho als die gewoon op basis van 'voorkeur van taal ofzo gemaakt wordt.

Sql Server is namelijk een volwaardige Relationele Databank, itt tot MySQL. Beter zou zijn dat je overstapt van ASP naar ASP.NET, dat ook een serieuze verbetering is tov ASP en PHP.
Dit is gewoon de know-how die in het bedrijf reeds aanwezig weggooien en zorgt voor een heleboel kosten en frustraties.

Zoals je dus idd zelf al hebt ontdekt ontbreken heel wat basisfunctionaliteiten bij MySQL. De vraag is dan ook of die 'grappenmaker' daar wel beslissingsrecht over heeft. Is het je baas of een manager ofzo? Vraag hem eens wat zijn motivatie is om naar een ander systeem over te stappen.

Paging kan je in ASP.NET trouwens heel makkelijk doen: Gewoon de AllowPaging property van de DataGrid op true zetten.
Het magische woord is "kostenbesparing" en verder krijgen wij binnenkort een opensource intranet ook op basis van php/mysql en meneer wil dat alles hetzelfde wordt.. opzich snap ik hem wel..

https://k1600gt.nl


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
Die 'kostenbesparing' zal imho niks anders dan extra kosten met zich meebrengen:
omscholen van het personeel, inboeten aan functionaliteit, .....

Niet te snappen die gast.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • shades
  • Registratie: September 2001
  • Laatst online: 14-07 13:45
whoami schreef op 19 June 2003 @ 22:21:
Die 'kostenbesparing' zal imho niks anders dan extra kosten met zich meebrengen:
omscholen van het personeel, inboeten aan functionaliteit, .....

Niet te snappen die gast.
Okay maar daar heb ik niks aan...
(we zijn een stichting dus ik snap die gast wel... wij zijn afhankelijk van subsidies en donaties.. omscholen is in dit geval alleen asp/mssql -> php/mysql en voor wat mij betrefd is hier dan alleen het php verhaal van belang)
Kan php/mysql paging ja/nee... (beetje kort maar het wordt off-topic)

[ Voor 25% gewijzigd door shades op 19-06-2003 22:31 ]

https://k1600gt.nl


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
shades schreef op 19 juni 2003 @ 22:28:
[...]


Okay maar daar heb ik niks aan...
Kan php/mysql paging ja/nee... (beetje kort maar het wordt off-topic)
Ja. Waarom zou het niet kunnen.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • shades
  • Registratie: September 2001
  • Laatst online: 14-07 13:45
whoami schreef op 19 June 2003 @ 22:29:
[...]


Ja. Waarom zou het niet kunnen.
Ik zou graag een voorbeeldje willen zien (of een url naar waar ik de informatie kan vinden). Dan kan ik morgen op werk er mee stoeien...

https://k1600gt.nl


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
Ooit al van Google gehoord? ;)

klik

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • shades
  • Registratie: September 2001
  • Laatst online: 14-07 13:45
whoami schreef op 19 June 2003 @ 22:34:
Ooit al van Google gehoord? ;)

klik
Ja.. maar daaruit blijkt dat paging niet mogelijk is zonder trukendoos.. dus wilde ik het van de proffesionals weten ;) Misschien dat die class iets is... Toch bedankt whoami

[ Voor 4% gewijzigd door shades op 19-06-2003 22:41 ]

https://k1600gt.nl


Acties:
  • 0 Henk 'm!

  • BasSpruit
  • Registratie: September 2002
  • Laatst online: 09-04-2022
Klassieke manier: Constante met max aantal regels maken, aantal records in query tellen, pagecount maken. records displayen d.m.v. loop waar je een voorwaarde in zet (regelnummer => begin AND regelnummer <= eind) en gaan met die banaan.

iets minder klassieke manier: queryresultaten in array pleuren, dan is het aantal records de upperbound v.h. array + 1. dan for I = Begin to Eind loop.

begin is waar je start met records laten zien, en eind is (je raad het vast al :D) waar je stopt met records displayen.

kaassie. maar met asp.net gaat het zelfs nog makkelijker. zijn ook gratis tools voor, en MSDE (is gratis DB-server van MS, met zelfde engine als SQL-server van MS, alleen connectie beperkingen en nog wat, maar dat weet ik niet)

Acties:
  • 0 Henk 'm!

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

kaassie. maar met asp.net gaat het zelfs nog makkelijker. zijn ook gratis tools voor, en MSDE (is gratis DB-server van MS, met zelfde engine als SQL-server van MS, alleen connectie beperkingen en nog wat, maar dat weet ik niet)
Dit is zeker waar. Tuurlijk kost het even tijd om .net onder de knie te krijgen maar als je kijkt naar de tijd die het bespaart op ontwikkelingskosten en betere onderhoudbaarheid van de code snap ook ik echt niet waarom deze beslissing is genomen.

Tuurlijk jullie zijn een stichting en moeten dus ook de uitgaven in de gaten houden maar je moet wel kijken naar wat het in de hele linie kost en niet alleen naar de prijs van eventuele licenties. :)
Als ik die link bekijk die je gaf dan is dit echt erg eenvoudig met .Net te realiseren en scheelt een hoop aan ontwikkelingsuren en toekomstig te maken aanpassingen.

(Geheel offtopic en misschien zelfs irrelavant, maar verder wel interessant om te bespreken :) )

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Sinds wanneer is LIMIT gebruiken in je SQL query een rare truckendoos? Ik gebruik het ook om mee te pagen in PHP/MySQL en vind het een handige manier van werken. Het enige jammere is dat je er geen totale count van matchende records mee krijgt, als dat belangrijk is kun je nog een losse COUNT query gebruiken.

PS. PHP is niet slechter of beter te lezen dan ASP - VBScript, het is gewoon wat je gewend bent te doen. Ik vind persoonlijk PHP wat lastiger netjes leesbaar te schrijven, omdat VBScript minder expressief is, moet je vaak langer naar een geprutste PHP statement kijken om te zien wat 'ie doet.

Als je beide duidelijk schrijft, zijn ze even goed te lezen en onderhouden.

[ Voor 38% gewijzigd door Gerco op 20-06-2003 14:14 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • Coolhva
  • Registratie: Juni 2003
  • Laatst online: 29-12-2024

Coolhva

Dr. Zero Trust

Wat ik op dat voorbeeld geval zie is toch gewoon ook mogelijk in PHP.

In Macromedia Dreamweaver MX maak je dat zo... euhm als ik tijd heb post ik even wat code.

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

En dan natuurlijk ook de offset clause gebruiken, dat maakt de limit veel bruikbaarder dan die suffe top-methode van sommige databases ;)

Acties:
  • 0 Henk 'm!

Verwijderd

doet ado onder water niet precies hetzelfde als wij met mysql limit?
nog een andere methode die zou kunnen is om de hele boel te querien en als array in sessie data te gooien. en dan elke keer voor de volgende/vorige pagina de volgende/vorige "page" uit de query halen. maar dan zit je weer met refresh problemen e.d.

ik zou dus gewoon voor de count(*) en limit moethode gaan, zoveel moeite is het toch ook weer niet.

dat je je stored procs moet herschrijven (in php code) is op zich niet helemaal vreemd als je naar een andere db gaat. en of je die nieuwe code nou in je db schrijft of in php maakt misschien ook niet veel uit.

Acties:
  • 0 Henk 'm!

  • shades
  • Registratie: September 2001
  • Laatst online: 14-07 13:45
Gerco schreef op 20 June 2003 @ 14:12:
Sinds wanneer is LIMIT gebruiken in je SQL query een rare truckendoos? Ik gebruik het ook om mee te pagen in PHP/MySQL en vind het een handige manier van werken. Het enige jammere is dat je er geen totale count van matchende records mee krijgt, als dat belangrijk is kun je nog een losse COUNT query gebruiken.

PS. PHP is niet slechter of beter te lezen dan ASP - VBScript, het is gewoon wat je gewend bent te doen. Ik vind persoonlijk PHP wat lastiger netjes leesbaar te schrijven, omdat VBScript minder expressief is, moet je vaak langer naar een geprutste PHP statement kijken om te zien wat 'ie doet.

Als je beide duidelijk schrijft, zijn ze even goed te lezen en onderhouden.
Misschien is het geen trukendoos maar voor mij op het moment wel.. Ik kijk gewoon naar de mogelijkheden. De discussie php vs. asp wil ik niet aangaan. Er komt ook een stuk herkenning bij. Waarschijnlijk kan ik in de avond uren php wel onder de knie krijgen en tegen de tijd dat e.e.a duidelijk wordt (zal zeker nog een maand of 6 duren vermoed ik) dan zal ik er wel mee uit de voeten kunnen.
ChaosDream schreef op 20 June 2003 @ 13:41:
kaassie. maar met asp.net gaat het zelfs nog makkelijker. zijn ook gratis tools voor, en MSDE (is gratis DB-server van MS, met zelfde engine als SQL-server van MS, alleen connectie beperkingen en nog wat, maar dat weet ik niet)
wel handig om te weten dat die desktop engine (zo heet ie toch ?) gratis is.. Over .net hoeft ik het niet te hebben omdat ik verder vooruit wil kijken richting linux. php/mysql is in 1 keer over te zetten naar linux..ik heb nu mysql en apache op mijn windows pc draaien en heb gevraagd aan de linux boy hij dat op de redhat testbak wilde zetten. Het enige wat ik moest aanpassen was het username/pwd in de mysql_connect..

[ Voor 25% gewijzigd door shades op 20-06-2003 18:21 ]

https://k1600gt.nl


Acties:
  • 0 Henk 'm!

Verwijderd

http://php.weblogs.com/adodb

Een database abstractie library voor PHP. De klasse is zo geschreven dat de API erg lijkt op ADO.
Deze library heeft ook een eigen paging functionaliteit die erg makkelijk is... echter de layout van de tabellen die het genereerd is alleen aan te passen met css.
Misschien dat PEAR (http://pear.php.net) uitkomst biedt, ook database library, ook paging klasse... alleen niet gericht op het van dienst zijn van ASP programmeurs.
De paging klasse is naar ik meen flexibeler maar ik heb daar geen ervaringen mee.

PS.

MySQL kan wel degelijk foreign keys aan met het InnoDB tabeltype. Stored procedures is echter een ander verhaal (helaas).

Acties:
  • 0 Henk 'm!

  • shades
  • Registratie: September 2001
  • Laatst online: 14-07 13:45
Verwijderd schreef op 20 juni 2003 @ 22:44:
http://php.weblogs.com/adodb

Een database abstractie library voor PHP. De klasse is zo geschreven dat de API erg lijkt op ADO.
Deze library heeft ook een eigen paging functionaliteit die erg makkelijk is... echter de layout van de tabellen die het genereerd is alleen aan te passen met css.
Misschien dat PEAR (http://pear.php.net) uitkomst biedt, ook database library, ook paging klasse... alleen niet gericht op het van dienst zijn van ASP programmeurs.
De paging klasse is naar ik meen flexibeler maar ik heb daar geen ervaringen mee.

PS.

MySQL kan wel degelijk foreign keys aan met het InnoDB tabeltype. Stored procedures is echter een ander verhaal (helaas).
Ik heb gekeken naar de mysql handleidingen (7.5.4.2 Foreign Key Constraints) en daar staat inderdaad dat je met innodb fk's kan gebruiken zolang het de eerst kolom is maar er zijn een aantal tabellen bij die wel 4 fk's gebruiken (is dus geknoopt aan 4 (genormalizeerde) tabellen. Wat ik zou willen zien (maar dat willen waarschijnlijk meer mensen) is dat je net als bij access of mssql een db-diagram kan maken waarin je zien hoe de relaties liggen..
Misschien is in onze situatie postgresql wel beter.. ik weet het niet.. (ik ben ook die draad aan het lezen over wat nou de beste db (oracle/mysql/postgres) zou zijn.. interessant wel.

over die like-ado classes.. ik weet niet. denk gewoon dat je toch de functionaliteiten van de taal/db zelf moet gebruiken.. een beetje ontwikkelaar zoekt dat uit toch ?


ik merk dat de draad een beetje richting "welke alternatieven voor asp/mssql" gaat.. op zich heb ik daar niet zoveel moeite mee want dat is wel waar ik uiteindelijk naar toe wil (had beter over na moeten denken maar okay)
Coolhva schreef op 20 June 2003 @ 14:13:
Wat ik op dat voorbeeld geval zie is toch gewoon ook mogelijk in PHP.

In Macromedia Dreamweaver MX maak je dat zo... euhm als ik tijd heb post ik even wat code.
Das zou wel interessant zijn.. ik wacht af..

[ Voor 17% gewijzigd door shades op 21-06-2003 01:23 ]

https://k1600gt.nl


Acties:
  • 0 Henk 'm!

Verwijderd

shades schreef op 21 juni 2003 @ 00:54:
[...]

over die like-ado classes.. ik weet niet. denk gewoon dat je toch de functionaliteiten van de taal/db zelf moet gebruiken.. een beetje ontwikkelaar zoekt dat uit toch ?


[...]
Hmm, waarom? Daarnaast wordt pear (op linux) standaard meegeleverd met de PEAR klassen... waarom die niet gebruiken... scheelt ook weer werk als je nu op mysql begint te ontwikkelen en later alsnog op postgres overstapt...
Ja misschien is postgres wel wat je wilt.... ligt er een beetje aan!

Acties:
  • 0 Henk 'm!

  • shades
  • Registratie: September 2001
  • Laatst online: 14-07 13:45
Verwijderd schreef op 21 June 2003 @ 13:21:
[...]

Hmm, waarom? Daarnaast wordt pear (op linux) standaard meegeleverd met de PEAR klassen... waarom die niet gebruiken... scheelt ook weer werk als je nu op mysql begint te ontwikkelen en later alsnog op postgres overstapt...
Ja misschien is postgres wel wat je wilt.... ligt er een beetje aan!
Ik heb nog niet goed naar pear gekeken en momenteel moet het nog wel ook het windowsplatform werken..

https://k1600gt.nl


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

shades schreef op 21 June 2003 @ 21:51:
Ik heb nog niet goed naar pear gekeken en momenteel moet het nog wel ook het windowsplatform werken..
PEAR zijn gewoon php-bestanden, dus dat zal net zo goed werken op windows lijkt me :)

Acties:
  • 0 Henk 'm!

  • shades
  • Registratie: September 2001
  • Laatst online: 14-07 13:45
ACM schreef op 21 juni 2003 @ 22:12:
[...]

PEAR zijn gewoon php-bestanden, dus dat zal net zo goed werken op windows lijkt me :)
Ja ik heb dat db package dingetje opgehaald. Begrijp niet helemaal wat ik met die package.xml. gewoon mysql.php en common.php bij includes(dir) zetten en db.php includen in de page.. (toch) . Begrijp alleen niet wat ik met de tests (phpt) map moet doen en een handleidinkje van het gebruik zou ook wel handig zijn

edit : ik heb nog niet alles gelezen dus misschien kom ik er morgen wel achter

[ Voor 8% gewijzigd door shades op 22-06-2003 01:53 ]

https://k1600gt.nl


Acties:
  • 0 Henk 'm!

Verwijderd

Ik zou het bestand pear.php.net/go-pear ophalen en dat vanuit een dosprompt uitvoeren. Bijvoorbeeld:
code:
1
C:\php\>php.exe C:\downloads\go-pear.php

En vervolgens de directory waar je pear hebt geinstalleerd in je include_path zetten in php.ini.

Zodra je met pear gaat werken en de pear package manager gaat gebruiken is het handig om het pad naar php.exe en het pad naar pear.bat (die je als boven hebt geinstalleerd) op te nemen in de PATH variabele van windows.
De database package's zijn onderdeel van de PEAR base distributie... dus wat dat betreft ben je klaar om te beginnen. Voor wat betreft de paging functionaliteiten moet je de DB_Pager package installeren.
Als je al het bovenstaande hebt gedaan hoef je vanuit je dosprompt alleen
code:
1
C:>pear.bat install DB_Pager
uit te voeren.
De eigen documentatie van PEAR laat soms nog te wensen over, maar dit is de afgelopen tijd hard aan het verbeteren... waar de PEAR website geen uitkomst biedt, biedt google (uiteraard) meestal een oplossing.

edit:
Handige link om te starten met DB_Pager: http://www.pearfr.org/index.php/en/article/db_pager

[ Voor 7% gewijzigd door Verwijderd op 22-06-2003 10:50 ]


Acties:
  • 0 Henk 'm!

  • shades
  • Registratie: September 2001
  • Laatst online: 14-07 13:45
Verwijderd schreef op 22 June 2003 @ 10:41:
Ik zou het bestand pear.php.net/go-pear ophalen en dat vanuit een dosprompt uitvoeren. Bijvoorbeeld:
code:
1
C:\php\>php.exe C:\downloads\go-pear.php

En vervolgens de directory waar je pear hebt geinstalleerd in je include_path zetten in php.ini.

Zodra je met pear gaat werken en de pear package manager gaat gebruiken is het handig om het pad naar php.exe en het pad naar pear.bat (die je als boven hebt geinstalleerd) op te nemen in de PATH variabele van windows.
De database package's zijn onderdeel van de PEAR base distributie... dus wat dat betreft ben je klaar om te beginnen. Voor wat betreft de paging functionaliteiten moet je de DB_Pager package installeren.
Als je al het bovenstaande hebt gedaan hoef je vanuit je dosprompt alleen
code:
1
C:>pear.bat install DB_Pager
uit te voeren.
De eigen documentatie van PEAR laat soms nog te wensen over, maar dit is de afgelopen tijd hard aan het verbeteren... waar de PEAR website geen uitkomst biedt, biedt google (uiteraard) meestal een oplossing.

edit:
Handige link om te starten met DB_Pager: http://www.pearfr.org/index.php/en/article/db_pager
Okay.. ik ga op onderzoek uit.. pear wordt wel met linux meegeleverd maar op mijn windows installatie van php kan ik geen peer bekeken.. thx

https://k1600gt.nl

Pagina: 1