login  Naam:   Wachtwoord: 
Registreer je!
 Forum

xxx nummer forceren

Offline pim1991 - 31/08/2008 16:22
Avatar van pim1991PHP interesse Hallo,

Ben bezig met leden ID's te geven maar dit moeten altijd 10 nummers zijn.
Eerste lid is dus 0000000001
Volgende 0000000002

Etc. maar hoe stel ik in PHP in dat hij altijd 10 cijfers moet toekennen?

10 antwoorden

Gesponsorde links
Offline Ultimatum - 31/08/2008 16:24
Avatar van Ultimatum PHP expert Je kan eerst kijken uit hoeveel tekens het id al bestaat, dus bijvoorbeeld 10, dus krijg dan kan je er dmv de functie PHP.net: str_repeat 8 nullen voor zetten
Offline pim1991 - 31/08/2008 16:33
Avatar van pim1991 PHP interesse Ok,

Maar hij kijkt dus eerst in de database wat het volgende ID moet zijn.
Dus dat is bijvoorbeeld 0000001254
Hoe kan ik dan tellen hoeveel 0'en erin zitten?

Gaat dat ook met str_repeat?
Offline Ultimatum - 31/08/2008 16:38
Avatar van Ultimatum PHP expert Staat het in de database ook met al die 0-en ervoor? Want die moeten dan eerst weg, als je alleen het getal zonder nummer weet kan je het zo doen.

  1. <?php
  2. $iId = strlen($id); //$id bevat je id nummer, en strlen telt hoeveel tekens het id is
  3. return str_repeat('0', (10 - $iId)) . $iId;
  4. ?>


Maar staan in de database ook die 0-en ervoor dan? Als dat zo is moet je het even zeggen dan kijk ik hoe je die eerst weg kan halen. Het kan ook nog makkelijker als het al met 0-en in database staat. Dan haal je gewoon het laastste id in databse op en doe je + 1. Maar als je het al als 10 cijferig getal in database hebt staan kan je niet auto increment doen omdat je veld varchar (of char) is of niet? Ik denk dat het beter is om zonder al die 0-en op te slaan in ieder geval.

Laat maar even weten of het je lukt of dat je nog meer hulp nodig hebt.
Offline pim1991 - 31/08/2008 16:42
Avatar van pim1991 PHP interesse In de database staat er ook nog een letter voor zelfs 

Gewoon +1 wilt niet werken geloof ik (correct me if i'm wrong)
Offline Ultimatum - 31/08/2008 16:43
Avatar van Ultimatum PHP expert Als er letters voor staan niet nee, maar alleen cijfers wel. Waarom doe je niet voor de letters en cijfers aparte velden in database en voeg je ze samen op overzichtspagina of in een sessie of weet ik het.
Offline Martijn - 31/08/2008 17:01
Avatar van Martijn Crew PHP je moet je database instellen op int met als atribute unsigned zerofill. Als je het dan opslaat als 13, word t automatisch 0000013
Offline Ultimatum - 31/08/2008 17:02
Avatar van Ultimatum PHP expert Hé dat is handig, weer wat geleerd op een zondag . Ik heb ook wel eens geprobeerd telefoonnummers op te slaan in een int(10) veld maar dan verdween de eerste 0 maar met een varchar(10) veld lukte het wel gewoon.
Offline Joost - 31/08/2008 17:04 (laatste wijziging 31/08/2008 17:04)
Avatar van Joost PHP expert
Ultimatum schreef:
Hé dat is handig, weer wat geleerd op een zondag . Ik heb ook wel eens geprobeerd telefoonnummers op te slaan in een int(10) veld maar dan verdween de eerste 0 maar met een varchar(10) veld lukte het wel gewoon.
Haha, ja, zo deed ik het ook 
Later heb ik wel even zoeken waarom die nou niet goed wou sorteren  
Offline pim1991 - 31/08/2008 17:23
Avatar van pim1991 PHP interesse Zal wel met int gaan werken en die letter later toevoegen in een ander vak 

Thx voor de hulp het is gelukt zo 
Offline MiST - 31/08/2008 17:52
Avatar van MiST Lid en anders is er nog steeds str_pad

maar die SQL functionaliteit is inderdaad wel handig!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s