subtelny
2.03.2010, 14:04:12
Witam serdecznie.
Mam pewien problem z wymyśleniem systemu, który będzie generował kod, za pomocą wyciągniętego wcześniej z bazy danych id.
Usiłuję, aby skrypt generował ciąg 13 znaków:
x yyyyyyyyyyyy, gdzie x to kategoria, do której należy dany przedmiot, y to ciąg cyfr wygenerowany z id.
Przykładowo:
1 000000000678
Co będzie oznaczało (przykładowo): Kategorię "Zupki chińskie" (1), produkt o id 678.
Zależy mi zwłaszcza na podpowiedzi, jak "wypełnić" zerami ten ciąg cyfr.
Byłbym wdzięczny za wszystkie podpowiedzi.
Pozdrawiam : )
phpion
2.03.2010, 14:06:37
Cytat(subtelny @ 2.03.2010, 14:04:12 )

Zależy mi zwłaszcza na podpowiedzi, jak "wypełnić" zerami ten ciąg cyfr.
str_pad
webdice
2.03.2010, 14:13:38
<?php
$productId = 678;
$categoryId = 1;
?>
EDIT:<?php
$productId = 678;
$categoryId = 1;
?>
Skrypt bierze pod uwagę kategorię powyżej id 9.
Ciąg na pewno jest 13 znakowy? bo jak dla mnie to przy 10 i więcej kategoriach Ci się system może "rozjechać" jeśli nie przewidzisz tego odpowiednio. Musisz mieć jakiś delimiter kategorii i produktu inny od zer bo inaczej jak rozróżnisz czy ciąg poprawny wedle definicji "13-znakowy kod"
1100000000678
to kategoria 11 i produkt 678, czy może
to kategoria 1 i produkt 100000000678
A co dopiero się będzie działo gdy kategorie zamienią się na setki lub tysiące? Horror.
Chyba łapiesz ideę dlaczego skrypt w obecnej postaci jest lekko mówiąc "nieskalowalny"? Zwyczajnie ograniczasz liczbę kategorii do maksymalnie 9 :/
subtelny
2.03.2010, 14:25:58
Maksymalnie 10 ; ) Zero też możemy liczyć do naszego kodu. Otóż kategorii nie będzie więcej jak 10, więc 13 cyfrowy kod jest całkowicie wystarczający. Nie muszę się o to martwić. Dziękuję serdecznie za pomoc : )
Chyba że tak. Troche ograniczasz możliwość rozwoju tego w przyszłości, ale skoro wystarcza to i nie przewidujesz zmian to może być. Mój post był tylko w ramach dodatku, który miał Ci uświadomić możliwy do zaistnienia problem.
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.