It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.
If it weren't for Carbon-14, I wouldn't date at all.
Je hoeft zelf niet op te geven wat het id moet zijn.
Je moet gewoon je insert als volgt schrijven:
1
| insert into tabel (veld, veld1) values ('blaat', 'blaat') |
Het ID-veld specifieer je dus NIET in je insert statement.
https://fgheysels.github.io/
Beter is dus eerst het ene record toe voegen, met mysql_insert_id() de ID op te vragen en dan weer verder te gaan met die ID
misschien had ik het eerder moeten zeggen
waarschijnlijk is daar een betere oplossing voor dan met een id maar dit leek me zo makelijk
It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.
If it weren't for Carbon-14, I wouldn't date at all.
Als dat wel het geval is, dan moet je het niet oplossen met een auto_increment, maar met een eigen 'sequence systeempje'
[edit]
Dan is een auto_increment een prima oplossing! Maar dan moet je niet denken dat het 'scheef' loopt, want dat is niet van toepassing..PsychoBoy schreef op 03 juni 2003 @ 11:49:
true, maar ik heb het id nodig om een naam aan een plaatje te geven zodat het plaatje uniek is (en te delete is met een id nummer)
misschien had ik het eerder moeten zeggen![]()
waarschijnlijk is daar een betere oplossing voor dan met een id maar dit leek me zo makelijk
[ Voor 53% gewijzigd door thomaske op 03-06-2003 11:51 ]
Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."
Kan natuurlijk ook...
Maar kan je niet eerst de insert doen en dan pas het plaatje renamen?PsychoBoy schreef op 03 June 2003 @ 11:49:
true, maar ik heb het id nodig om een naam aan een plaatje te geven zodat het plaatje uniek is (en te delete is met een id nummer)
misschien had ik het eerder moeten zeggen![]()
waarschijnlijk is daar een betere oplossing voor dan met een id maar dit leek me zo makelijk
't Is niet de netste oplossing, dat klopt, maar wellicht wel redelijk werkbaar.
Verder zie ik het nut niet zo van een plaatje een naam geven, heeft het die niet allang?
maar eigen 'sequence systeempje' klinkt ook interessant
max(id)+ 1 invoeren word dat dan denk ik?
It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.
If it weren't for Carbon-14, I wouldn't date at all.
https://fgheysels.github.io/
uiteraard heeft het plaatje een naamACM schreef op 03 June 2003 @ 11:52:
[...]
Maar kan je niet eerst de insert doen en dan pas het plaatje renamen?
't Is niet de netste oplossing, dat klopt, maar wellicht wel redelijk werkbaar.
Verder zie ik het nut niet zo van een plaatje een naam geven, heeft het die niet allang?

maar als ik een rij verwijder dan gebruik ik daar een id voor. en het is wel makkeiljk als ik dat plaatje wat er bij hoort ook kan verwijderen met die id
(en die heeft het id ook om uniek te zijn)
It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.
If it weren't for Carbon-14, I wouldn't date at all.
je haalt met de eerste query het "laatste toegevoegde" id op
en verhoog je het met 1
met de tweede query stop je met bij behorende data in de databeest
maar waarom geen auto_increment? je hebt altijd unique id's je krijgt misschien wellis waar gaps in je id nummering maar dat hindert niet in je opzet... iig na aanleiding van je 2e post
Confucius said: "In ancient time, learning was for self. Nowadays learning is for others."
Eerst een record in de database schrijven. Daarna direct mysql_insert_id() in PHP aanroepen ( http://nl2.php.net/mysql_insert_id ). Plaatje daarnaar renamen en klaar. Denk dat je je erg veel moeite kan besparen.
En je kan er denk ik zeker wel van uitgaan dat de volgende 1 hoger is dan de hoogste waarde die nu in de auto_increment kolom voorkomt.
- = Step Into The Pit | Industrial Strength = -
Verwijderd
1
2
3
4
5
| $sql = "SHOW TABLE STATUS LIKE 'tabelnaam'"; $resultaat = mysql_query($sql); $record = mysql_fetch_array($resultaat); echo "Volgende key is: " . $record['Auto_increment']; |
heel erg slodig geloof ik, maar er word maar door 1 persoon te gelijk gebruik gemaakt om de producten in te voeren dus wat maakt het uit
nee dat liep zelf al spaak tijdens het testennarotic schreef op 03 June 2003 @ 11:58:
En je kan er denk ik zeker wel van uitgaan dat de volgende 1 hoger is dan de hoogste waarde die nu in de auto_increment kolom voorkomt.

thx guys
It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.
If it weren't for Carbon-14, I wouldn't date at all.
Verwijderd schreef op 03 juni 2003 @ 12:04:
Om de volgende auto-index te bepalen:
PHP:
1 2 3 4 5 $sql = "SHOW TABLE STATUS LIKE 'tabelnaam'"; $resultaat = mysql_query($sql); $record = mysql_fetch_array($resultaat); echo "Volgende key is: " . $record['Auto_increment'];
It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.
If it weren't for Carbon-14, I wouldn't date at all.
Verwijderd
Dat kun je dus zeker niet. Zoals al eerder geschetst is: je voegt wat toe (krijgt ID 7), je verwijderd het. Het hoogste ID in de tabel is nu 6, maar de volgende auto_inc waarde is 8. Deze kans is te groot om zomaar te verwaarlozen.En je kan er denk ik zeker wel van uitgaan dat de volgende 1 hoger is dan de hoogste waarde die nu in de auto_increment kolom voorkomt.
En je kan niet de naam van het plaatje in het record zetten, ipv het plaatje te hernoemen ?PsychoBoy schreef op 03 June 2003 @ 11:56:
uiteraard heeft het plaatje een naam![]()
maar als ik een rij verwijder dan gebruik ik daar een id voor. en het is wel makkeiljk als ik dat plaatje wat er bij hoort ook kan verwijderen met die id
(en die heeft het id ook om uniek te zijn)
Kan eventueel natuurlijk ooit fout gaan als net iemand tegelijkertijd een plaatje upload.Verwijderd schreef op 03 juni 2003 @ 12:04:
Om de volgende auto-index te bepalen:
PHP:
1 2 3 4 5 $sql = "SHOW TABLE STATUS LIKE 'tabelnaam'"; $resultaat = mysql_query($sql); $record = mysql_fetch_array($resultaat); echo "Volgende key is: " . $record['Auto_increment'];
AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.
Verwijderd
Dat los je met een stored procedure (die mysql nog niet aan boord heeft) niet op.vargo schreef op 03 June 2003 @ 12:37:
Moet je eigenlijk niet met een stored procedure werken? Want kan het (theoretisch) niet zo zijn dat tussen het opvragen van de auto_inc en het gebruik ervan er toch bijv. een row aan de dbase wordt toegevoegd?
In principe wel door het geheel in een transactie te verpakken (innodb tabel ipv MyIsam)
Maar de kans op een concurerende insert in de tijdsspannne die zit tussen het uitvoeren van twee regels php code is wel erg theoretisch.
Ik doe het altijd via een insert en dan het auto_increment opvragen (mysql_insert_id())
ja en?! de topicstarter wil het id hebben voor het plaatje, nou dat kan dan toch. Insert en id opvragen, plaatje renamen en klaar
wat ook kan is SELECT id FROM eenofanderetabel ORDER BY id DESC LIMIT 1
en dan is het id wat er overblijft je laatste gebruikte id en dan tel je er een bij op.
maar ja wel weer een beetje basic (ben wel goed voor deze wereld en nu ga ik naar bed)
zodra je bijvoorbeeld zeven records hebt en je insert een achtste, je bedenkt je en delete het record. Wanneer je jouw method gebruikt geef jij aan dat de next id 8 is terwijl mysql 9 zal toekennnen
De oplossing van RobinVR is wel netjes maar heeft nog een risico bij simultaan schrijven van en naar. Hoewel deze kans natuurlijk erg klein is. Omdat je deze query's bijna direct na elkaar zal aanroepen binnen een script.
buit is binnen sukkel
Verwijderd
kan iemand mij vertellen waarom
"INSERT INTO tabel (id) VALUES (max(id)+'1')" niet werkt ??
[ Voor 11% gewijzigd door Verwijderd op 04-06-2003 07:31 ]
Verwijderd schreef op 04 juni 2003 @ 07:22:
heel handig php alleen als er meerdere tegelijk gaan gaat het fout.
kan iemand mij vertellen waarom
"INSERT INTO tabel (id) VALUES (max(id)+'1')" niet werkt ??
ik heb ook geprobeerd aan "SELECT max(id) FROM table" maar als de vorige id (bijv word verwijderd, dan is de hoogste id uit de database dus 7. maar de volgende auto_insert_id word dan 9, dus dat loopt scheef dan
It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.
If it weren't for Carbon-14, I wouldn't date at all.
Hoe moet mysql nou weer weten wat de max van id is op dat moment?Verwijderd schreef op 04 June 2003 @ 07:22:
heel handig php alleen als er meerdere tegelijk gaan gaat het fout.
kan iemand mij vertellen waarom
"INSERT INTO tabel (id) VALUES (max(id)+'1')" niet werkt ??
Sowieso is mysql gewoon niet transaction save zolang je geen innodb hebt, dus zelfs met jouw bovenstaande query is er geen garantie dat het goed gaat.
Ook weet je in zo'n geval achteraf niet wat nou het resutlaat werd...
- = Step Into The Pit | Industrial Strength = -
INSERT INTO tabel (id) SELECT max(id)+1 FROM tabelVerwijderd schreef op 04 juni 2003 @ 07:22:
heel handig php alleen als er meerdere tegelijk gaan gaat het fout.
kan iemand mij vertellen waarom
"INSERT INTO tabel (id) VALUES (max(id)+'1')" niet werkt ??
[ Voor 7% gewijzigd door Erkens op 06-06-2003 13:30 ]