Ik ben bezig met een database-applicatie met PHP en MySQL. Van een pagina met een formulier worden gegevens gepost naar het verwerkingsscript dat deze gegevens (controleert en) in de database opslaat in 4 tabellen. De eerste tabel die wordt bijgewerkt bevat een auto_increment id. Die wordt echter ongewenst gereset.
De eerste query die wordt uitgevoerd is ongeveer deze:
met mysql_insert_id() wordt het id opgehaald en worden de overige 3 tabellen gevuld. Als dit goed gaat wordt op de eerste tabel update query uitgevoerd op een veld dat de status van de entry aangeeft:
Wat ik hoopte te bereiken was een lijst met opeenvolgende id's. Die onstaat echter niet (zie plaatje hieronder). Ik heb zelf 2 mogelijke oorzaken kunnen bedenken:
1. "status" is een reserved woord in MySQL, door de update wordt de auto_incrment vernaggeld. (dat hoop ik niet want wordt hoop aanpaswerk).
2. Ik heb een index liggen over het het id 'datasetid' en het veld 'election'. Er wordt op basis van de waarde van 'election' gekeken of het id opgehoogd moet worden. Dat strookt wel redelijk met het plaatje van de testcases:

Is er iemand die hier uitsluitsel over kan geven, alvorens ik mijn scripts overhoop haal?
De eerste query die wordt uitgevoerd is ongeveer deze:
code:
1
2
3
4
| INSERT INTO pge_datasets
(datasetid, archive, archivenumber, institution, name, response, election)
VALUES
(NULL,'TMOB','007','TEST','Testnaam','562','0') |
met mysql_insert_id() wordt het id opgehaald en worden de overige 3 tabellen gevuld. Als dit goed gaat wordt op de eerste tabel update query uitgevoerd op een veld dat de status van de entry aangeeft:
code:
1
2
3
4
5
6
| UPDATE pge_datasets
SET
status = '1'
WHERE
datasetid = '" .$id ."'
LIMIT 1 |
Wat ik hoopte te bereiken was een lijst met opeenvolgende id's. Die onstaat echter niet (zie plaatje hieronder). Ik heb zelf 2 mogelijke oorzaken kunnen bedenken:
1. "status" is een reserved woord in MySQL, door de update wordt de auto_incrment vernaggeld. (dat hoop ik niet want wordt hoop aanpaswerk).
2. Ik heb een index liggen over het het id 'datasetid' en het veld 'election'. Er wordt op basis van de waarde van 'election' gekeken of het id opgehoogd moet worden. Dat strookt wel redelijk met het plaatje van de testcases:

Is er iemand die hier uitsluitsel over kan geven, alvorens ik mijn scripts overhoop haal?
Regeren is vooruitschuiven