Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generowanie numeru
Forum PHP.pl > Forum > Gotowe rozwiązania
biz0n
Witam

Mam coś takiego

[php:1:7337ee5562]<?php

include "./common_db.inc";
$link_id=db_connect();

$date_num= date("Y/m");
$qnum="SELECT max(lp) FROM dane";
$wynik=mysql_query($qnum);
$num=mysql_fetch_row($wynik);
$numer=$num[0];

print"$date_num/$numer";

?>[/php:1:7337ee5562]

gdzie:

w tabeli dane w kolumnie lp sa cyfry w postaci 1 2 3 itd

Skrypt w rezultacie wyrzuca wynik w postaci 2004/01/1 a chciałbym żeby było 2004/01/0001 dla 2 2004/01/0002 itd Potem w następnym miesiącu będzie 2004/02/tu zaś numeracja idzie od 0001

Dzieki za pomoc
kszychu
Może tak?
[php:1:7cad337274]<?php
$i = 1000 / $numer;
while($i>1) {
$xx .= "0";
$i = $i/10;
}
$numer = $xx.$numer;
?>[/php:1:7cad337274]
biz0n
jakby Ci to nie sprawiło trodności to napisz jak to działa

DZIEKI DZIEKi
scanner
Cytat
napisz jak to działa
I czemu to służy?
rant
Cytat
Może tak?
[php:1:8f8c043f59]<?php
$i = 1000 / $numer;
while($i>1) {
 $xx .= "0";
 $i = $i/10;
}
$numer = $xx.$numer;
?>[/php:1:8f8c043f59]


a nie prosciej

[php:1:8f8c043f59]<?php
$string_i = sprintf("%04s",$number);
?>[/php:1:8f8c043f59]
kszychu
Cytat
I czemu to służy?

Przeczytaj pytanie, to może zrozumiesz.....

P.S. Może nie jest to najprostrzy sposób, ale taki wtedy przyszedl mi do glowy.
scanner
Cytat
Może nie jest to najprostrzy sposób, ale taki wtedy przyszedl mi do glowy.
Jedno Twoje szczęsćie że php pozwala na dowolną żonglerkę typami zmiennych. W bardziej doprecyzowanym językku miałbyś "Type mismatch" w kilku liniach Twojego listingu. Stąd moje pytanie.
kszychu
Cytat
Cytat
Może nie jest to najprostrzy sposób, ale taki wtedy przyszedl mi do glowy.
Jedno Twoje szczęsćie że php pozwala na dowolną żonglerkę typami zmiennych. W bardziej doprecyzowanym językku miałbyś "Type mismatch" w kilku liniach Twojego listingu. Stąd moje pytanie.

Szczęście?! A co ma szczęście do specyfikacji języka i konwersji typów, czy jak wolisz, żonglerki typami?
Ale skoro już się czepiamy, to pokaż mi miejsce, w którym JAWNIE zadeklarowane jest, że $numer jest liczbą. Pokaż mi gdzie w ogóle zadeklarowana jest zmienna $numer. Jak to powiedziałeś, w bardziej doprecyzowanym języku pojawiło by się więcej błędów w moim, ale też w innych kodzie. W Twoim pewnie nie, bo nic nie zapodałeś...
Sh4dow
W komentarzach do funkcji number_format jest podana przez kogos funkcja, ktora niedosc ze odpowida twoim wymaganiom, czyli poprzedza zerami cyfre, to jeszcze zaokrakla liczby po przecinku. Jak zwykle wszystko w manualu biggrin.gif
dooshek
Cytat
Może tak?
[php:1:eb55876e56]<?php
$i = 1000 / $numer;
while($i>1) {
 $xx .= "0";
 $i = $i/10;
}
$numer = $xx.$numer;
?>[/php:1:eb55876e56]


Hmm, jest taka funkcja [manual:eb55876e56]str_pad[/manual:eb55876e56] moze ona pozwoli rozwiazac problem w jednej linijce

[php:1:eb55876e56]
<?
$numer = 1;
echo str_pad($numer, 4, '0');
?>
[/php:1:eb55876e56]

W wyniku bedziemy mieli 0001
kszychu
To co napisałeś zwróci 1000.
Aby było dobrze trzeba użyć

echo str_pad($numer, 4, '0', STR_PAD_LEFT);

Reasumując, sposobów na wykonanie tego zadania jest wiele, od użytkownika zależy który wybierze.
Proponuje EOT
dooshek
Cytat
To co napisałeś zwróci 1000.
Aby było dobrze trzeba użyć

echo str_pad($numer, 4, '0', STR_PAD_LEFT);

Reasumując, sposobów na wykonanie tego zadania jest wiele, od użytkownika zależy który wybierze.
Proponuje EOT


sorki, walnalem sie winksmiley.jpg masz calkowita racje STR_PAD_LEFT musi byc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.