postie record in gesorteerde tabel

Status
Niet open voor verdere reacties.

swaenie

Gebruiker
Lid geworden
24 aug 2008
Berichten
39
1. In een tabel wordt een record toegevoegd.
2. Ik bepaal met MAX het nieuwe ID van dit record.
3. Vervolgens wordt de tabel gesorteerd op datum.

Ik wil nu weten op de hoeveelste plaats het record, met genoemd ID, in de tabel staat.

Ik kom er niet uit....
 
MAX gebruiken voor het ID is niet aan te raden!!

Als je het met PHP erin gooit, kun je de functie mysql_insert_id gebruiken om achter het ID te komen.

En daarnaast ben ik erg benieuwd waarom je wilt weten op welke plek dit in de database staat, ik kan me namelijk geen situatie bedenken waarin dat interessant zou zijn.
 
Bedankt voor je reactie. Al weer iets geleerd..

Van een agenda worden telkens 15 records getoond (1 regel per record, gesorteerd op datum). Om vooruit en achteruit te bladeren bepaal ik de eerste keer en na iedere nieuwe invoer, cq. verwijdering het totaal aantal records en de positie van het record met een datum als vandaag of, indien niet aanwezig, de dag erna. Dit record zal in de set van 15, waarin het voorkomt altijd als eerste regel verschijnen.
Hierdoor weet ik bovendien waar ik ben (Ik weet nl. niet of er een manier is om achteruit te bladeren door een database).
Als ik ook nog de positie weet van de laatste invoer, kan ik deze tevens highlighten, als ik na invoer meteen naar betreffende set spring.

Ik hoop dat mijn beschrijving duidelijk is.

Wellicht dat het allemaal veel simpeler kan en sta voor alle suggesties open.
 
Ik snap het geloof ik nog niet helemaal.

Maar als ik jou was, zou ik de datum en tijd (of een timestamp) erbij zetten, en dan kun je daarop ordenen. Het is altijd een slecht idee om de records op basis van een ID op te halen, als je ervan uitgaat dat de ID's op volgorde staan van toevoeging.
 
Dat van de ID's is inderdaad het probleem.

Maar inderdaad het kan dus veel simpeler. Ik werkte alleen met de datum, terwijl een timestamp natuurlijk veel preciezer is. Dom van me...

Heel erg bedankt.
 
Je kunt trouwens uitstekend bladeren met de LIMIT functie, die accepteert het aantal records om te skippen, en het aantal dat ie moet tonen.

Dus als je 10 items per pagina hebt, roept dit pagina 3 op:

[sql]
SELECT *
FROM agenda
WHERE 1
LIMIT 20, 10
[/sql]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan