Skocz do zawartości
PL
Szukaj na Pecetowiczu
  • Utwórz konto

Problem z numerowaniem


Rekomendowane odpowiedzi

Witam, robię panel do zarządzania fakturami, chce automatycznie numerować faktury, mam taki skrypt:

$num = 0;

$mies = date('m');

$rok = date('Y');

$sql = mysql_query("SELECT MAX(numer_faktury) AS maxn FROM faktury");

while($r = mysql_fetch_assoc($sql))

{

    $maxn = $r['maxn'];

    if ($maxn >= 1)

    {

        $num = $maxn + 1; // ani $maxn++ ani ++$maxn nie działało tak jak powinno

    }else

    {

        $num = 1;

    }

}

Wszystko ładnie numeruje, tylko gdy dochodzi do 10, to każda kolejna faktura ma numer 10, gdy zapytanie wpisuje do SQL, to pokazuje że największy numer w bazie to 9, gdzie powinno pokazać 10..

W skrócie, numerowanie zatrzymuje się na 10.. Jakieś pomysły?

Odnośnik do komentarza
Udostępnij na innych stronach

A nie możesz po prostu zrobić w bazie danych kolejnej kolumny ID z autoinkrementacją ?

Odnośnik do komentarza
Udostępnij na innych stronach

Tworzysz kolumnę "nr" i dajesz jej wartość PRIMARY (aby się nie powtarzały) i AI (Autoincrement).

Odnośnik do komentarza
Udostępnij na innych stronach

$num = $maxn + 1;
Na przykład tak i potem wyświetlić gdzieś numer faktury.
$num+=1

Nie wiem co to jest to $maxn.

Odnośnik do komentarza
Udostępnij na innych stronach

Połącz z funkcją date.

Odnośnik do komentarza
Udostępnij na innych stronach

zapisuj miesiąc i rok dodania faktury do bazy i przy zapisaniu pobierz ilość rekordów z danego miesiąca.

Czyli zapisuj np. do kolumny "month" (string[7]): 2015-05, odczytaj za pomocą zapytania:

SELECT COUNT(*) as ilosc FROM faktury WHERE month='2015-05'

i pobierając, to będzie numer nowej faktury:

$nr = $row['ilosc']+1

Odnośnik do komentarza
Udostępnij na innych stronach

Kontynuuj dyskusję

Dołącz do Pecetowicza, aby kontynuować dyskusję w tym wątku.

  • Dodaj nową pozycję...
  • Dodaj nową pozycję...