php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.05.2006, 14:44  
Erfahrener Benutzer
 
Registriert seit: 16.08.2004
Beiträge: 145
DDogg
Standard Zahl 5 in Zahl 005 umwandeln?

Noch eine dumme Frage für die ich bestimmt gerügt werde ... aber ... Augen zu und durch, dafür ist es ja ein Anfänger Forum

Ich habe 3 Zahlen. 150, 50, 5.

Die möchte ich in meine Datenbank eintragen. In der Datenbank sollen Sie aber immer 3stellig sein. Also 150. 050, 005.

Kann ich meine SQL Datenbank so Vortypisieren das es das automatisch macht oder muss ich es vorher umwandeln?

Mein Umwandelansatz wäre

if ($Zahl > 99)
{
$Komma = $Zahl;
}
else if ($Zahl > 9)
{
$vorst = 0;
$Komma = $vorst.$Zahl;
}
else if ($Zahl < 10)
{
$vorst = 00;
$Komma = $vorst.$Zahl;
}

Aber das ist wohl ziemlich armseelig ...
DDogg ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.05.2006, 14:46  
Gast
 
Beiträge: n/a
Standard

Stehen in Deiner Tabelle Zeichenketten oder Zahlen?
Wofür brauchst Du die führenden Nullen (... in der Datenbank)?

sprintf('%03d', $zahl);
Erklärung dazu bei http://php.net/sprintf
 
Alt 18.05.2006, 14:47  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Wofür es so in der Datenbank speichern? Es reicht doch vollkommen bei der Ausgabe die Nullen zu ergänzen.

Dafür gibts str_pad();

PHP-Code:
<?php
$zahl1 
5;
$zahl2 10;
$zahl3 150;

$zahl1 str_pad($zahl130STR_PAD_LEFT);
$zahl2 str_pad($zahl230STR_PAD_LEFT);
$zahl3 str_pad($zahl330STR_PAD_LEFT);

echo 
$zahl1// ergibt 005
echo $zahl2// ergibt 010
echo $zahl3// ergibt 150
?>
Flor1an ist offline  
Alt 18.05.2006, 14:55  
Erfahrener Benutzer
 
Registriert seit: 16.08.2004
Beiträge: 145
DDogg
Standard

Zur Erlärung

Ich habe Werte.

Wert 1, eine ganze Zahl (in der Datenbank INT), zb 50, gibt die Voranginge Wichtigkeit das ganzen Eintrags an.

Wert 2, auch eine ganze Zahl (in der Datenbank INT), zb 4, gibt die nachranginge Wichtigkeit des Eintrags an.

Um den Eintrag jetzt nach seiner Wichtigkeit zu sortieren könnte ich nach Wert 1 sortieren. (ORDER BY wert1)... Wenn ich dann 2 Werte mit 50 habe, haben Sie ja die gleiche Wichtigkeit. Hänge ich jetzt aber Wert 2 als Kommazhal dran, kann ich Sie weiter unterscheiden.

EIn Beispiel.

A: Wert1 = 50 Wert2 = 4
B: Wert1 = 50 Wert2 = 300

Wenn ich jetzt beide Werte zusammenführe enstehen folgende Zahlen

A: Wert12 = 50,004
B: Wert12 = 50,300

Wert 1 und Wert2 errechnen sich aus anderen Abfragen und eben Rechnungen.

Wert12 wird dann in ein Datenbankfeld R eingetragen, das als Type float hat.
DDogg ist offline  
Alt 18.05.2006, 14:56  
Neuer Benutzer
 
Registriert seit: 17.05.2006
Beiträge: 7
fachinformatiker
Standard

3. Lösung, da du in php keine richtigen Datentypen hast:
while (length($zahl)<3)
{
$zahl="0".$zahl;
}
Jetzt hast du 3 Lösungen, such dir eine aus.
fachinformatiker ist offline  
Alt 18.05.2006, 14:57  
Neuer Benutzer
 
Registriert seit: 17.05.2006
Beiträge: 7
fachinformatiker
Standard

Zitat:
Zitat von DDogg
Zur Erlärung

Ich habe Werte.

Wert 1, eine ganze Zahl (in der Datenbank INT), zb 50, gibt die Voranginge Wichtigkeit das ganzen Eintrags an.

Wert 2, auch eine ganze Zahl (in der Datenbank INT), zb 4, gibt die nachranginge Wichtigkeit des Eintrags an.

Um den Eintrag jetzt nach seiner Wichtigkeit zu sortieren könnte ich nach Wert 1 sortieren. (ORDER BY wert1)... Wenn ich dann 2 Werte mit 50 habe, haben Sie ja die gleiche Wichtigkeit. Hänge ich jetzt aber Wert 2 als Kommazhal dran, kann ich Sie weiter unterscheiden.

EIn Beispiel.

A: Wert1 = 50 Wert2 = 4
B: Wert1 = 50 Wert2 = 300

Wenn ich jetzt beide Werte zusammenführe enstehen folgende Zahlen

A: Wert12 = 50,004
B: Wert12 = 50,300

Wert 1 und Wert2 errechnen sich aus anderen Abfragen und eben Rechnungen.
Da würde ich einfach Wert 2 durch 1000 teilen und dann beide Werte addieren.
fachinformatiker ist offline  
Alt 18.05.2006, 15:00  
Erfahrener Benutzer
 
Registriert seit: 16.08.2004
Beiträge: 145
DDogg
Standard

Manchmal ists so einfach. Da verhaspelt man sich so in seiner Logic das man das gute alte GETEILT DURCH vergisst ....

Danke
DDogg ist offline  
Alt 18.05.2006, 15:33  
Erfahrener Benutzer
 
Registriert seit: 09.03.2005
Beiträge: 219
webbi
Standard

Oder ganz normal in der MySQL Abfrage nach beiden Spalten sortieren, dann kannst du dir die ganzen umständlichen Vorhaben sparen.

SELECT texte FROM tabelle ORDER BY wichtigkeit1, wichtigkeit2.


Wenn du folgende Einträge hasr

40 | 1
42 | 3
42 | 2
40 | 5
50 | 1
50 | 3

Wäre das Ergebnis:

40 | 1
40 | 5
42 | 2
42 | 3
50 | 1
50 | 3

Hoffe, das ist so gewünscht.
webbi ist offline  
Alt 18.05.2006, 15:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

ZEROFILL gibt es noch als Feldeigenschaft in MySQL.
Zergling-new ist offline  
Alt 18.05.2006, 16:11  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Hier kommt wohl niemand aus der C/C++ Welt sonst würdet ihr alle ned so umständlich an die Sache rangehen...

PHP-Code:
<?php
echo sprintf("%03d"5) . "
"
;
echo 
sprintf("%03d"50) . "
"
;
echo 
sprintf("%03d"500) . "
"
;;
?>
[edit] sorry Bruchpilot hab deinen Post zu spät gesehen
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zahl splitten und aufteilen Autoterrorist PHP Tipps 2008 9 30.07.2008 21:27
Monatsname in Zahl umwandeln andrew22 PHP Tipps 2008 5 13.03.2008 15:08
zahlen mit zeilenumbruch nach x-ter zahl ausgeben centauro PHP Tipps 2008 2 09.02.2008 14:22
[Erledigt] Umwandeln in HTML-Entities ohne Umwandeln der TAGS PHP-Fortgeschrittene 4 26.12.2005 16:17
preg_replace: Zahl anstatt String FI-DD PHP-Fortgeschrittene 4 02.10.2005 14:50
zahl ausgeben wenn gerade Tschuu PHP Tipps 2005-2 6 07.07.2005 19:20
Prüfung auf Zahl, Wert in PHP? PHP Tipps 2005-2 1 07.06.2005 10:32
[Erledigt] String in Zahl umwandeln PHP Tipps 2005 1 12.05.2005 11:39
Größte Zahl raussuchen themonk PHP Tipps 2005 3 21.04.2005 19:27
$zahl in eine echte Zahl im Script?!? Matthiasnet PHP Tipps 2005 3 07.03.2005 22:17
zahl von fremder seite herausfiltern! PHP Tipps 2004-2 3 12.11.2004 15:12
2004-10-12 in Zahl umwandeln PHP Tipps 2004 2 12.10.2004 11:48
datum in zahl umwandeln PHP Tipps 2004 1 13.09.2004 15:50
Zahl aus Textstring rausziehen PHP Tipps 2004 2 11.07.2004 14:44
datum in zahl umwandeln PHP Tipps 2004 1 02.07.2004 10:39

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php führende nullen ergänzen, php führende 0 ergänzen, javascript zahl führende nullen, sql nummer muss 3 stellig sein, javascript führende null, mysql \zahl in text\ where, php sprintf d komma, führende nullen ergänzen javascript, php zahl ergänzen, sprintf php führende null, sql 10,5 in 010,50 konvertieren, mssql zahlen konvertieren, php zahl 21 umrechnen in 1, normale zahl in eins und null umwandeln, mysql \zahl in text\ führende nullen, zahl 5, ausgabe sql ganze zahlen mysql, zahl5, php zahl konvertieren mit führenden nullen, http://www.php.de/php-tipps-2006/40048-zahl-5-zahl-005-umwandeln.html

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:02 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.