myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   mysql - auto_increment (https://mygully.com/showthread.php?t=2093903)

Magicstar 10.08.10 08:45

mysql - auto_increment
 
Hallo Leute,
durch welches angaben ist es möglich einen autoincrement-wert immer eine feste länge zuzuweisen?
bsp: nicht 1 oder 2
sondern 0000000001 oder 0000000002

Irolight 10.08.10 09:10

Es wäre mir neu das es so möglich ist. Da auto_increment nur bei Zahlen funktioniert, und diese keine Vorlage haben können die sie nicht auf eine Normale Zahl kürzen (Nullen ganz links werden entfernt).

urga 10.08.10 18:33

ist nicht möglich, aber per php kannst du den wert ziemlich einfach mit 0llen ergänzen:
PHP-Code:

<?php

function blabla_mirfaellt_kein_name_ein ($i$stellen) {
    return 
blabla_mirfaellt_kein_name_ein2 ($i, (int) ($stellen log10 ($i)));
}
function 
blabla_mirfaellt_kein_name_ein2 ($i$count) {
    if (
$count 1) return (string) $i;
    return 
'0' blabla_mirfaellt_kein_name_ein2 ($i$count-1);


$x 199;

echo 
blabla_mirfaellt_kein_name_ein ($x4);

edit: ohne 2te rekursive funktion :
PHP-Code:

function blabla_mirfaellt_kein_name_ein_ausserdem_habe_ich_feierabend_und_musste_mir_heute_schon_tonnenweise_passende_methoden_namen_ausdenken ($i$stellen) {
    
$cnt $stellen - (int) log10 ($i);
    return 
        
$cnt str_repeat ('0'$cnt) . (string) $i
        
: (string) $i;
}

$x 199;

echo 
blabla_mirfaellt_kein_name_ein_ausserdem_habe_ich_feierabend_und_musste_mir_heute_schon_tonnenweise_passende_methoden_namen_ausdenken ($x5); 


Irolight 11.08.10 12:21

oder einfach nur: ;)
PHP-Code:

sprintf('%010d'$meineZahl


Magicstar 12.08.10 00:35

dann hab ich aber wieder code im s*****, der nicht sein müsste.
das soll die id eines support_tickets werden.
und die soll min. 6stellen haben, eher mehr.
und da brauche ich halt die nullen

urga 12.08.10 18:25

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

select lpad(id, 10, "0"), ... from ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:37 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.