Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.
Positie van een ID in een tabel is afhankelijk van je query (hangt er natuurlijk vanaf hoe je het bekijkt). Autonumber ID's zijn misschien wel een oplossing, maar ik snap eigenlijk niet goed wat je wilt/doet.
Als je de query elke keer sorteert a.d.h.v. de zelfde kolommen zal het weinig uitmaken dat je het sorteert op datum.
Maar er is in sql niet echt een "positie" binnen een tabel, simpelweg omdat er geen volgorde garanties etc zijn. Juist door opgave van 'order by blaat' krijg je een specifieke volgorde.
Dus denk dat je idd nog iets beter uit moet leggen wat je wilt bereiken en waarom het mis gaat met je huidige methode?
Maar er is in sql niet echt een "positie" binnen een tabel, simpelweg omdat er geen volgorde garanties etc zijn. Juist door opgave van 'order by blaat' krijg je een specifieke volgorde.
Dus denk dat je idd nog iets beter uit moet leggen wat je wilt bereiken en waarom het mis gaat met je huidige methode?
Verwijderd
Lees de tabel in, in een array en kijk op welke positie in de array de gezochte waarde voorkomt. de indexering is komt dan (waarschijnlijk) overeen met die in de tabel.
Ik hoop dat je er wat aan hebt, want het is me niet geheel duidelijk wat je pcies wilt.
Ik hoop dat je er wat aan hebt, want het is me niet geheel duidelijk wat je pcies wilt.
Nou goed dit is het probleem dus :FlamerX schreef op 06 oktober 2002 @ 22:42:
Positie van een ID in een tabel is afhankelijk van je query (hangt er natuurlijk vanaf hoe je het bekijkt). Autonumber ID's zijn misschien wel een oplossing, maar ik snap eigenlijk niet goed wat je wilt/doet.
Ik heb een agenda functie die meerdere pagina's moet kunnen bevatten. Echter moet er ook naar het verleden teruggebladerd moeten kunnen worden .
Ik doe nu gewoon iedereen keer een $offset variable die bij 0 start en iedere keer het aantal te bekijken items erbij krijgt. Daar doe ik dus een LIMIT op met een offset op Mysql .
Als je binnenkomt krijg je standaard de eerst x aantal items te zien vanaf de huidige datum met een offset van 0, als je nou wilt terugbladeren krijg je een offset van -1 en daar krijg je natuurlijk geen records op , terwijl er wel records zijn die eerder zijn dan de datum .
Oftwel ik moet weten op welke 'pagina' de gebruiker binnenkomt ( met een date van vandaag dus ) en daar leek het mij verstandig om te weten op welke positie het item staat in de tabel.
Met auto_increment werken is niet handig, omdat er ook wel eens ID's 'geskipt' worden ivm deleten etc.
[edit]
Bedenk een situatie als deze :
http://www.vrijwazig.org/agenda/agenda.asp
Alleen dan met een multi-paging systeem
Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.
Toch is auto_increment wel makkelijk. Ok, gedelete ID's vormen een probleem maar deze kun je opvangen door te kijken of een resultset leeg is als je een ID opvraagt (select werkend id geeft een gevulde result, select gedelete id geeft een lege result). Als je dus een lege result krijgt ga je 1 ID naar onder (of boven).
Hoop dat ik nu een beetje en probleem heb begrepen.
Hoop dat ik nu een beetje en probleem heb begrepen.
Denk dat je met tijden moet gaan werken dan?
Dus zoiets:
browse.php?current_day=[huidige tijd]&direction=back
etc waarna je er een dag af haalt of een dag erbij optelt en verder kan je dan per dag multi-paging hebben etc.
Je zult iig een beetje moeten goochelen met de tijd van de dag die je aan het bekijken bent vermoed ik.
Dus zoiets:
browse.php?current_day=[huidige tijd]&direction=back
etc waarna je er een dag af haalt of een dag erbij optelt en verder kan je dan per dag multi-paging hebben etc.
Je zult iig een beetje moeten goochelen met de tijd van de dag die je aan het bekijken bent vermoed ik.
Hum ja dat zou kunnen idd, ware niet dat ik meerdere rijen wil laten zien ( 50 ofzo ) en daar dus tussen pagen . Dan kan ik dus niet voorspellen in welke datum range de vorige 50 dagen lagen.ACM schreef op 06 oktober 2002 @ 23:04:
Denk dat je met tijden moet gaan werken dan?
Dus zoiets:
browse.php?current_day=[huidige tijd]&direction=back
etc waarna je er een dag af haalt of een dag erbij optelt en verder kan je dan per dag multi-paging hebben etc.
Je zult iig een beetje moeten goochelen met de tijd van de dag die je aan het bekijken bent vermoed ik.
FlamerX -> nee je begrijpt het nog niet echt
Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.
Nog een poging dan: je hebt data vanaf 1-1-2002 tot 1-1-2003. Als je binnenkomt krijg je dat data te zien vanaf 6-10-2002 tot 1-1-2003 (of net zoveel als er in je LIMIT zitten). Stel je wilt dus de volgende 50 zien dan doe je:
SELECT * FROM table WHERE datum > $laatstedatum LIMIT 50
Teruggaan kun je ook doen (wel resultset omdraaien):
SELECT * FROM table WHERE datum < $eerstedatum LIMIT 50
Of heb ik het nu nog steeds niet?? Zo ja: I give up...
SELECT * FROM table WHERE datum > $laatstedatum LIMIT 50
Teruggaan kun je ook doen (wel resultset omdraaien):
SELECT * FROM table WHERE datum < $eerstedatum LIMIT 50
Of heb ik het nu nog steeds niet?? Zo ja: I give up...
Woef wat een gedachtengang
. Dat ik daar niet op gekomen was.
Okee, wat ik nu dus heb gedaan is idd bij een offset lager dan 0 de query gewoon compleet omdraaien, dus lager < date en een andere order geven .
En nu werkt het
Bedankt
Okee, wat ik nu dus heb gedaan is idd bij een offset lager dan 0 de query gewoon compleet omdraaien, dus lager < date en een andere order geven .
En nu werkt het
Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.
het is al laat heBasszje schreef op 06 oktober 2002 @ 23:37:
Woef wat een gedachtengang. Dat ik daar niet op gekomen was.
Okee, wat ik nu dus heb gedaan is idd bij een offset lager dan 0 de query gewoon compleet omdraaien, dus lager < date en een andere order geven .
En nu werkt hetBedankt
Pagina: 1