Feld mit "0"-Auffüllen
Sascha
- php
0 Sönke Tesch0 Sascha
Mahlzeit :)
gibt es in PHP eine Funktion (die ich dann Übersehen habe) die eine Str-Variable bis zu einer bestimmten Anzahl mit '0' auffüllen kann?
Es ist folgendes, der Benutzer gibt eine Mac-Addy ein z.B. "00:03:CD:AD:43:2A" diese wird dann verifiziert ob es sich hierbei um eine Mac-Add wirklich handelt. Wenn sie 'ok' ist wird sie dann in die DB-geschrieben und zwar 0003CDAD432A..
nun darf es sein, dass der User die führenden '0' weglässt und mit "3:CD:AD:43:2A" den Eintrag vornimmt... für die Datensortirung ganz schlecht, weil "0003CDAD432A" > "DFE2333" ist.
Achso DB ist MySQL feld 'hardwareaddress' ist vom Typ VARCHAR..
vielen Dank für eure Hilfe
Sascha
gibt es in PHP eine Funktion (die ich dann Übersehen habe) die eine Str-Variable bis zu einer bestimmten Anzahl mit '0' auffüllen kann?
PHP-Anleitung, Inhalt Kapitel String-Funktionen, (http://www.php.net/manual/de/ref.strings.php):
"str_pad -- Erweitert einen String auf eine bestimmte Länge unter Verwendung eines anderen Strings"
"sprintf -- Gibt einen formatierten String zurück"
Achso DB ist MySQL feld 'hardwareaddress' ist vom Typ VARCHAR..
Ich möchte meinen, daß die Mac-Adresse eine maximale Größe hat, insofern wäre der Typ VARCHAR hier vollkommen fehl am Platze. Wenn, dann CHAR, ich persönlich würde sogar zu einem numerischen Typ greifen.
Gruß,
soenk.e
PHP-Anleitung, Inhalt Kapitel String-Funktionen, (http://www.php.net/manual/de/ref.strings.php):
"str_pad -- Erweitert einen String auf eine bestimmte Länge unter Verwendung eines anderen Strings"
"sprintf -- Gibt einen formatierten String zurück"
Ich möchte meinen, daß die Mac-Adresse eine maximale Größe hat, insofern wäre der Typ VARCHAR hier vollkommen fehl am Platze. Wenn, dann CHAR, ich persönlich würde sogar zu einem numerischen Typ greifen.
Danke Dir!
der Datentyp ist auch CHAR... habe mich um eine Zeile versehen ;)
numerischer Typ wäre auch okay, ich hätte auch kein Problem damit den Hex String in einen Int-Wert zu 'überführen'
ideal wäre natürlich ein Feld vom Typ Hexadecimal...aber des gibts ja nicht ?!?
Sascha
Ich möchte meinen, daß die Mac-Adresse eine maximale Größe hat, insofern wäre der Typ VARCHAR hier vollkommen fehl am Platze. Wenn, dann CHAR, ich persönlich würde sogar zu einem numerischen Typ greifen.
der Datentyp ist auch CHAR... habe mich um eine Zeile versehen ;)
numerischer Typ wäre auch okay, ich hätte auch kein Problem damit den Hex String in einen Int-Wert zu 'überführen'
ideal wäre natürlich ein Feld vom Typ Hexadecimal...aber des gibts ja nicht ?!?
Nein, das macht auch keinen Sinn. Denn egal ob Hex, Dezimal, Oktal, Binär oder bananenbasiert, der zugrundeliegende Zahlenwert ist immer derselbe, lediglich die Darstellung sieht anders aus. Der Computer speichert aber keine Darstellung, sondern den Wert.
Du brauchst für MySQL Hexwerte übrigens nicht erst umzuschreiben, sie können direkt angegeben werden:
select 0xa + 1;
-> 11
Gruß,
soenk.e