Anzeige
Tutorialbeschreibung

Laufende Nummern und Texte auf eine bestimmte Größe erweitern

Laufende Nummern und Texte auf eine bestimmte Größe erweitern

Oft werden Schleifen oder ähnliche Mittel dazu benutzt, um z.B. Kunden- oder Artikelnummern mit Nullen (meist führend) oder anderen Texten zu erweitern.
Resultierend hieraus finden sich in vielen PHP-Quelltexten je nach Anwendungsgebiet hunderte Schleifen oder selbst gebaute Funktionen; da dies jedoch nicht nötig ist, möchte ich hier kurz aufzeigen, wie dies direkt in PHP funktioniert.


Schritt 1:

In diesem Beispiel besitzen wir ein PHP-Script mit Datenbankanbindung. In der Datenbank befindet sich eine Tabelle mit Bestellungen.

Laut Vorgabe soll die Bestellnummer immer 12-stellig sein und sich aus der  laufenden Nummer der Tabelleneinträge (index, auto_increment) sowie führenden Nullen zusammen setzen.


Schritt 2:


Zur Umsetzung kommt hier in PHP die Funktion str_pad() zum Einsatz.

Der Aufbau der Funktion in PHP ist wie folgt:

string str_pad ($string_der_erweitert_werden_soll, anzahl_der_stellen, $string_der_angefügt_werden_soll, [optional_wo_soll_er_angfügt_werden]);

Für unser Beispiel würde dies wie folgt aussehen:

<?php

$laufende_nummer = "12345678"; // ausgelesen aus Tabelle

$laufende_nummer_format = str_pad($laufende_nummer , 12 , "0", STR_PAD_LEFT);

echo $laufende_nummer . "
 <br />" . $laufende_nummer_format;

php?>
Lässt man "STR_PAD_LEFT" weg, wird im Standard nach rechts erweitert. Optionen sind: STR_PAD_RIGHT, (standard) Erweiterung nach rechts STR_PAD_LEFT, Erweiterung nach links STR_PAD_BOTH, Erweiterung im Gleichen nach rechts und links Schritt 3:

Ausgabe:

12345678
000012345678
 




Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von Sentinal
  • 11.02.2011 - 17:06

Habe auch mehr erwartet. Zumal eine derartige Funktion bei php.net nachgelesen werden kann. Neben str_pad(); könnte beispielsweise auch number_format(); angewendet werden.

5 Punkte für nichts verschenkt. Das Tutorial ist nicht sehr Hilfreich.

Portrait von TK814
  • 14.01.2011 - 17:15

Hatte mir auch mehr erwartet.. schade. Trotzdem gut (:

Portrait von roland-nrw
  • 22.01.2010 - 22:43

Da hätte ich aber mehr erwartet. 3 Punkte verschenkt...

Portrait von Diakon
  • 23.01.2010 - 17:28

Nicht Masse, sondern Klasse macht es aus.
Was zu erwarten ist steht relativ eindeutig in der Beschreibung.

Dennoch danke für den Punk.

Portrait von Martin92
  • 22.01.2010 - 18:14

gut und einfach erklärt, danke

Portrait von Josi_311
  • 22.01.2010 - 16:38

Super, vielen dank. Das ist ja mal richtig einfach...

Portrait von chris213
  • 22.01.2010 - 12:13

prima, kurz und knapp

Portrait von Diakon
  • 20.01.2010 - 13:05

Wenn jemand weiß wie ich das hinbekomme das der nicht den Code - Bereich soweit zieht. Bitte melden danke :(

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 20.01.2010 - 14:21

Hey,<br>
Du könntest den Code-Bereich noch einmal formatieren, indem Du oben links auf &quot;Tutorial ändern&quot; und dann bei dem WYSIWYG-Editor auf Quellcode klickst. Dort müsste der HTML-Tag an der falschen Stelle stehen. Ziehe den Tag &quot;&lt;/code&gt;&quot; einfach an die gewünschte Stelle.

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 19.01.2010 - 21:35

Vielen Dank, wirklich hilfreich;)

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 19.01.2010 - 15:40

So etwas kann man immer mal gebrauchen!


(Ist der Fehler nur bei mir, oder hast Du das Tutorial nicht richtig formatiert? Bei mir wird alles bis zur Überschrift "Schritt 3" noch als Code ausgegeben. Wenn es ein Fehler ist hätte da stellamarina auch beim überprüfen der RS darauf stoßen können.)

Portrait von Fidelis_jpg
  • 17.01.2010 - 18:32

hey, das ist mal gut zu wissen, wie das geht!!!
Das schöne ist, dass es kein Code ist der über 100 Zeilen geht!
Gruß

Portrait von breakdown
  • 17.01.2010 - 10:07

ha! und ich habe immer erst mit 10000 addiert und dann mit substr () die 1 abgeschnitten. danke das du mit eine elegantere moeglichkeit gezeigt hast.
und ich finde die erklaerung klasse. du hast nicht einfach hingekritzelt wie das geht, sondern auch die ganze funktion in ihrer schreibweise und einem anschaulichen beispielcode erklaert.

mach ruhig noch mehr tutorials ; -)

x
×
×