![]() |
![]() |
-Kinia- |
![]()
Post
#1
|
Goście ![]() |
Glowie sie od kilku godzin, niby prosty kod do napisania a niby cos zle robie.
Mam baze danych w ktorej sa np. produkty i kazdy produkt ma kod swoj (ida po kolei) np. aa-0001, aa-0002, aa-0003, ... aa-0123 i teraz wlasnie chce zrobic generator takiego kodu (czyli by znalazl kolejny wolny) - zapewne ktos mysli - a nie latwiej zrobic zeby policzyl wszystkie i dodal kolejny - NIE koniecznie musi byc kolejny - przedstawie moj tok myslenia - moze robie cos zle no ale ... 1. LACZENIE SIE Z BAZA DANYCH (host, login, passwor) - wiadomo 2. zmienne na poczatku $a = "aa-" $b = "0000"; $ab = $a.$b; 3. Wyszukaj $ab w bazie danych w kolumnie kod 4. Policz wynik (mysql_num_rows) 5. Jesli wynik 0 - czyli aa-0000 JEST WOLNY 6. Ale jesli nie - I TU NIE WIEM CZY MOGE TAK ZROBIC - ZASTOSOWAC WHILE $nowy_b = 2; $istnienie = 1 i tu zaczyna sie while policz z ilu znakow sklada sie $nowy_b (z uzyciem strlen() ) to nam powie czy nowy_b sklada jest o 2-9 czy od 10 do 99 czy od 100 do 999 czy od 1000 do 9999 - to nam potrzebne do tego zebysmy wiedzieli ile wstawic zer przed kodem do wyszukania tutaj switcha albo if do wygenerowania calego kodu czyli np (jak $new_b = 3 czyli ma jeden znak: $nowy_kod = $a."000".$new_b czyli na wyjsciu mamy np. aa-0003 tu select - czyli sprawdz w kolumnie kod czy jest taki aa-0003 policz znalezienie i powtarza petle az znalezienie bedzie 0 (IMG:style_emoticons/default/smile.gif) MAM NADZIEJE ZE ROZUMIECIE cos z tego i bedzie Wam sie chcial to przenalizowac NIBY LATWE ALE JEDNAK COS NIE TAK :/ |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Po pierwsze:
tak jak to tu przedstawiłeś, to jest to totalnie bezsensu. Skoro zawsze to ma być aa-ITUKOLEJNE, to zrób poprostu pole ID autoincrement, które samo automatycznie będzie się zwiększać o 1 i będziesz miał to co chcesz. Jak ci będzie zależało na aa-.... to poprostu potem na podstawie ID będziesz te aa-.... budował Po drugie: e, tu napiszę, jak ustosunkujesz się do po pierwsze (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 05:42 |