[php/mysql] Auto_increment met 4 karakters

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Hey,

Is het mogelijk om in mysql een auto increment op een veld toe te passen, waarbij het getal minstens 4 karakters bevat (dus 0001, 0002, ..... ,9999)?

Ik wil namelijk een nummer aan vacatures toevoegen (uniek welteverstaan) die beginnen met het jaartal, gevolgd door een volgnummer (dus bijvoorbeeld 090001, waarbij 0001 dus het veld is met auto increment).

Of weten jullie een gemakkelijkere manier om dit op te lossen? (bijvoorbeeld met een integer met 4 karakters)

Ik heb gezocht op internet, maar ik weet niet precies waar ik op moet zoeken.

Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Dit soort dingen hoor je niet in de database op te slaan, maar alleen te laten zien.
Controleer in PHP hoe lang het volgnummer is en voeg aan de hand daarvan voorloopnullen toe of gebruik sprintf om voorloopnullen toe te voegen.

Acties:
  • 0 Henk 'm!

  • Speedener
  • Registratie: September 2000
  • Laatst online: 18-09 12:54
Het is mogelijk. Door middel van ZEROFILL kan je in mysql aangeven dat je een kolom wilt vullen met 0-en.

http://dev.mysql.com/doc/...umeric-type-overview.html

LG Therma V Split WP: HU143MA.U33-HN1636M NK5


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ik zou heel erg oppassen met (en terughoudend zijn met) het toekennen van betekenissen aan primary keys, anders dan unieke identificatie binnen een tabel. Nummers zoals dit kun je ook gewoon na/tijdens het ophalen uit de database genereren.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Gewoon je primary key scheiden van je vacaturenummer. Sla gewoon op en gebruik evt. de insert id om de string te maken die je vacaturenummer voorstelt op de manier zoals je dat wil.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Euh; dit is gewoon werk die je presentatielaag hoort af te handelen. In je DB hoort dus gewoon 1, 2, 8 etc. te staan. Dat je presentatielaag dat toont als 0001, 0002 en 0008 boeit niet.

Als je 090001 wil hebben neem ik aan dat de 09 ook weer een waarde uit een ander veld is die dus op zijn beurt ook weer gewoon opgeslagen is als 9 en niet als 09.

Bij zoeken op 090001 split je in code beide cijfers naar 09 en 0001 en strip je de voorloopnullen en kun je dus prima zoeken op 9 en 1. Voila.

Presentatie hoort niet in de DB thuis. Zie ook Representatie en opslag

[ Voor 10% gewijzigd door RobIII op 30-05-2009 17:05 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 19-09 16:54

DexterDee

I doubt, therefore I might be

Een kleine aanvulling op vorige reacties is het aanmaken van een UNIQUE index in MySQL op je vacaturenummer veld, zodat je met zekerheid geen dubbele nummers kan inserten.

Klik hier om mij een DM te sturen • 3245 WP op ZW

Pagina: 1