Führende Nullen werden entfernt bei DB Abfrage

TVE

Erfahrenes Mitglied
Hi zusammen

Wenn ich einen Varchar Wert aus der DB auslese werden mir immerzu die führenden Nullen entfernt. Wie kann ich das vermeiden? Ich verwende mysql_result um die Daten auszulesen.
 
wozu brauchst du denn fuehrende 0-en?
vielleicht geht das problem auch anders zu loesen....

falls deine werte aber alle die selbe anzahl stellen haben sollen ist das recht easy zu loesen indem du immer ueberpruefst wieviel unterschied die laenge des aktuellen strings zu der standardlaenge hast und fuegst entsprechend viele 0-en vorne dran...
 
OK, hab mich geirrt, die Nullen werden erst entfernt, wenn ich mehrere Strings zusammenfüge, und dies nachher in ein File schreibe. (darum dachte ich erst, der Fehler kommt von der DB Abfrage her)

Und nein, es hat keine Standardlänge, also keine mögliche Lösung, aber danke.
 
erstens nochmal die frage:

wozu werden die fuehrenden 0-en gebraucht?


zweitens:
beschreib das mal genauer mit dem strings zusammen fuegen und in ein file schreiben (mit quellcode am besten), es klingt tatsaechlich unlogisch, dass fuehrende 0-en aus strings entfernt werden, da 0-en ja auch bloß zeichen sind...
 
Zuletzt bearbeitet:
PHP wird wahrscheinlich wieder ein typecasting vornehmen und wandelt den Datenbankwert wahrscheinlich in eine Zahl um, da gehen dann eben die 0en verloren
 
Du musst den Wert als Zeichenkette behandelt, da numerische Datentypen keine führenden Nullen hat.
 
@tobias & gumbo

der thread-starter sagte bereits, dass das problem doch nich beim auslesen aus der db stattfindet, sondern erst spaeter (das hab ich inzwischen auch selber mal ausprobiert wenn ich 000624 aus nem varcharfeld auslese und ausgeben lasse wird auch 000624 ausgegeben und nich 624)


ausserdem: typecasting, datentypen, zeichenkette? wir sprechen hier von php alles was dem nich geheuer vorkommt behandelt er ohnehin als zeichenkette, dazu zaehlen auch zahlen mit fuehrenden 0-en (es sei denn sie werden ohne anfuehrungszeichen zugewiesen: $test = 000124; jetzt hat $test natuerlich den wert 124 - eine der wenigen moeglichkeiten die php-datentypen zu beeinflussen)), also nich mit kanonen auf spatzen schießen, das verwirrt nur 8-))

deswegen nochmal die fragen an den threadstarter:

1. wie tritt das problem genau auf (mit quellcode)

2. wozu werden fuehrende 0-en gebraucht? vielleicht laesst sich das problem anders loesen....
 
ausserdem: typecasting, datentypen, zeichenkette? wir sprechen hier von php alles was dem nich geheuer vorkommt behandelt er ohnehin als zeichenkette […]
Datentypen werden nur PHP-intern unterschieden. Alles was von außen kommt, ist erst mal eine Zeichenkette, da eine Typunterscheidung nicht möglich ist. Das hat nichts mit Misstrauen zu tun.
[…] dazu zaehlen auch zahlen mit fuehrenden 0-en (es sei denn sie werden ohne anfuehrungszeichen zugewiesen: $test = 000124; jetzt hat $test natuerlich den wert 124 - eine der wenigen moeglichkeiten die php-datentypen zu beeinflussen)), also nich mit kanonen auf spatzen schießen, das verwirrt nur 8-))
000124 ist die oktale Darstellung der Dezimalzahl 84 und nicht wie du es sagst mit der Dezimalzahl 124 identisch.
 
Datentypen werden nur PHP-intern unterschieden. Alles was von außen kommt, ist erst mal eine Zeichenkette, da eine Typunterscheidung nicht möglich ist. Das hat nichts mit Misstrauen zu tun.
der varchar aus der DB um den es hier in diesem thread geht wird aber als string behandelt wenn er ausgegeben wird...

000124 ist die oktale Darstellung der Dezimalzahl 84 und nicht wie du es sagst mit der Dezimalzahl 124 identisch.
korrekt - hilft dem problem aber nicht weiter....
 
Zuletzt bearbeitet:
Zurück