Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z prawidłową inicjacją numeracji
kosy
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 18.08.2005
Skąd: Pabianice

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
UNK
post
Post #2





Grupa: Zarejestrowani
Postów: 93
Pomógł: 5
Dołączył: 30.04.2006
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 00:02