Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z prawidłową inicjacją numeracji
Forum PHP.pl > Forum > Przedszkole
kosy
Mam prolem z wykonaniem inicjacji numeracji.
Idea jest taka: mam tabelę z dwiema kolumnami: id(klucz, autonumer) i numer. Jeśli tabela jest pusta (nie ma jeszcze wpisów) to niech zmienna numer przyjmuje wartość 1, a jak jest już jakiś wpis w kolumnie numer to niech zwraca jego wartość największą a zmienna numer niech przyjmuje wartość o jeden większą niż zwrócona.
Wykonuje to tak ale coś jest źle bo kolejne numery to: 1, 2, 1, 1 ....
  1. <?php
  2. $a=mysql_query("SELECT id, numer FROM faktury HAVING id = max(id)");
  3.  while($b=mysql_fetch_assoc($a)){
  4.  $num = $b["numer"];
  5.  }
  6.  if (!empty($num)) { $numer = $num + 1; } else { $numer = 1; }
  7. ?>

Proszę o małą pomoc
UNK
Zamiast
SELECT id, numer FROM faktury HAVING id = max(id);
może spróbuj
1) SELECT MAX(id) FROM faktury;
albo
2) SELECT id, FROM faktury ORDER BY id DESC LIMIT 1;

Oba przykłady zwracają największy id z bazy, tylko że pierwszy prostszy:P

Na początku skryptu dodaj $numer = 0; bo nigdzie tego nie widać, wtedy jesteś pewny że wartość tej liczby na pewno będzie 0, a nie +/- X.

Jeśli dalej będzie sie pojawiał błąd że dodaje 1,2,1 .... to zamień if (!empty($num)) na if (@$num) może to pomoże winksmiley.jpg
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.