Ich versuche viele Arten von Feldern in MySQL, nur Zahlen zu speichern, versucht mit INT, BIGINT mit führenden Nullen, CHAR und VARCHAR, um Rechnungsnummern zu speichern

Ich benötige die Rechnungsnummern, um mit 0000000001 zu beginnen. Ich habe sie manuell in PHPmyadmin gespeichert

Jetzt möchte ich es anzeigen und bekomme keine führenden Nullen ....

Hier ist die Datenbank

Feld "Folio" CHAR 15 gespeichert Ich habe manuell 0000000001 gemacht, es wird gut auf phpmyadmin angezeigt

Aber hier ist das Problem

<?php $maxprod=mysqli_query($datacenter, 
"SELECT * FROM ventas 
WHERE documento = 'boleta' 
ORDER BY id DESC LIMIT 1");
while($lastcode=mysqli_fetch_assoc($maxprod)){?>


<input type="text" value="<?php echo $lastcode['folio']+1?>">
   <?php }?>

Das Ergebnis der Abfrage ist 1, nur 1, es werden nicht alle anderen Nullen angezeigt

Irgendeine Idee warum?

-1
NICALANICA 19 Apr. 2018 im 19:16

3 Antworten

Beste Antwort

PHP konvertiert Zeichenfolgen automatisch in Zahlen, wenn Sie eine numerische Operation ausführen. Sie können die Bestellnummer jedoch in ganzzahliger Form beibehalten und bei Bedarf mit Nullen auffüllen:

str_pad($lastcode['folio']+1, 15, "0", STR_PAD_LEFT);

0
gabonator 19 Apr. 2018 im 16:23

echo $lastcode['folio'] sollte ein Ergebnis mit den führenden Nullen anzeigen, nicht jedoch $lastcode['folio']+1.

Sobald Sie dies tun +1, ist das Ergebnis keine Zeichenfolge mehr. Die Variable $lastcode['folio'] wird in eine Zahl konvertiert, um die arithmetische Operation auszuführen.

Die führenden Nullen werden nur formatiert und müssen nicht mit der Nummer gespeichert werden. Wenn Sie eine automatisch inkrementierende Nummer benötigen, verwenden Sie einfach eine automatische Inkrementierungs-Ganzzahl in MySQL und formatieren Sie die Nummer beim Ausdrucken mit führenden Nullen.

0
Don't Panic 19 Apr. 2018 im 16:25

Dadurch wird die Nummer als Zeichenfolge abgerufen und als Text angezeigt.
Später können Sie es in Ihrer Codierungsumgebung bearbeiten.

SELECT CAST(document_number AS CHAR) FROM ...
-2
j3ff 10 März 2020 im 11:35