Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie do bazy z powtarzającymi wartościami
Forum PHP.pl > Forum > PHP
winiar789
Witam,

Piszę pewien system sprawdzania zamówień w sklepie, mam sporo warunków które muszą być spełnione mianowicie.
Posiadam tabele z użykownikami przypisanymi gdzie znajduje sie id, platnosc, pomijaj po, wlacz/wylacz, data od, data do
i teraz tak wpada sobie zamowienie pobieram sobie uzytkownikow sprawdzam czy zgadza sie dla tego uzytkownika metoda platnosci
czy jest w opowiedniej dacie czy nie jest wylaczony to nie problem jednak jak przypisac uzytkownika do zamowienia
to znaczy wpada zamowienie 1 i daje uzytkownika a wpada zamowienie 2 daje uzytkownika b wpada zamowienie 3 daje uzytkownika c
nastepnie wpada zamowienie 4 daje uzytkownika a czyli juz sie powtarza bo zakladam ze dodalem 3 uzytkownikow
administrator doda sobie do uzytkownika ze pomijaj zamowienie co 1 moze tez co 2 co 3
i teraz tak wpada zamowienie 1 daje uzytkownika b zamowienie 2 daje c zamowienie 3 daje b zamowienie 4 daje c zamowienie 5 i w tym momecie daje a

Mam nadzieję że opisałem to w miarę możliwości jasno.. Bardzo proszę o pomoc. Dziękuje.
mar1aczi
Zamieszałeś i to mocno tym swoim opisem.
Użytkownik ma swoje ID i zamówienie powinno mieć swoje ID (ID - wartość unikalna w obrębie tabeli).
Wiążesz ID_użytkownika z ID_zamówienia w kolejnej tabelce i masz chyba to czego oczekiwałeś.
winiar789
Tak oczywiście masz racje zamowienie ma unikalne id uzytkownik tez
do czego zmierzam wpada ci zamowienie o id 1234 w trakcie wpadania zamowienia sprawdza wartosci dodanych uzytkownikow czy ma mozliwosc przejecia zamowienia
czy metoda platnosci tez odpowiednio przypisana jest do uzytkownika itd to nie jest problem jednak zauwaz ze mamy 3 uzytkownikow analogicznie dla każdego uzytkownika powinno byc przypisane po zamowienie czyli wpada zamowienie 1234 wiec dam uzytkownikowi 1 wpada zmowienie 1235 dam zamowieni 2 wpada 1236 dam uzykownikowi 3 zapisze to w bazie unikalny id zamowienie i id uzytkownika to tez do wykonania ale jak sprawdzic to dalej to znaczy mam juz 3 zamownie z przypisanymi 3 uzytkownikami teraz wpada kolejne i jak dac do zamowienie 1237 uzytkownika 1 ... itd. mam tez mozliwosc pomijania zamownie dla tenego uztkownika czyli dam mu warunek ze pomijaj co 1 zamownienie analogicznie wpada zamowiniue 1111 daje 1 1112 daje 2 1113 daje3 ale mam warunek pomijaj 1 wiec jak zrobic aby kolejne zamownienie bylo 1114 daj 2 1115 daj 3 1116 daj 2 1117 daj 3 i dopiero teraz zamowienie 1118 daj 1 ..
mar1aczi
Widzę, że język polski jest Ci obcy.
Do podziału, które/ile zamówienia mają być obsłużone przed daną osoba możesz wykorzystać dzielenie modulo. Jeśli, daną osobę należy pominąć (jest zajęta, nieobecna) powinieneś mieć odpowiedni znacznik na tabeli użytkowników i taką osobą pomijać w danej chwili rozdzielania zamówień do obsłużenia.
winiar789
Widzę, że język polski jest Ci obcy. // smile.gif Chcę bardzo szybko opisać swój problem i automatycznie wychodzą takie kwiatki wink.gif Przepraszam.
To co mi napisałeś nie jest dla mnie zrozumiałe.

Na samym początku opisałem jak dodawać do zamówienia użytkownika
czyli zamówień masz 100 użytkowników 3 proporcjonalnie przypisane zamówienia do użytkowników

Druga ze 1 z użytkowników może być w kolejce więc taki znacznik posiadam o wartości np: 1
Dzielenie modulo? Czy mógłbyś bardziej to opisać?
mar1aczi
Proszę http://pl.wikipedia.org/wiki/Modulo
Zwykłe dzielenie też w sumie powinno wystarczyć. Wszystko zależy od tego jak ułożysz algorytm rozdzielania zamówień między osoby (te, które mają je obsłużyć).
winiar789
A czy możesz mi powiedzie jak powtarzać użytkownika do zamówienie czyli masz zamowienie 1111 użykownik 1 zam. 1112 uzytkownik 2 zam. 1113 uzytkownik 3 ... teraz powtarzaj ... zam. 1114 uzytkoniwk 1 itd. questionmark.gif
mar1aczi
  1. <?php
  2. $arr_users = array(3, 5, 7, 8, 12);
  3. $cnt_users = count($arr_users);
  4.  
  5. $cnt_zamowienia = 73;
  6.  
  7. $licznik = 0;
  8. while($licznik < $cnt_zamowienia) {
  9. echo "zamowienie " .($licznik+1). " dla użytkownika: " .$arr_users[$licznik % $cnt_users]. "<br />";
  10. $licznik++;
  11. }
  12.  
  13. ?>

Zrozumienie kodu na pracę domową.
winiar789
Dziękuje wink.gif jak najbardziej rozumiem ale założyłeś już z góry że zamówień masz 73 a tu to dziala dynamicznie każde zamówienie sprada z osobna czyli masz jedno zamowienie dla 1 uzytkownika.

zkladasz zamowienie w sklepie wiec masz 1 zamowienie znowu idzie 1 zamowienie ale juz dla usera 2 itd. przydzieliles ze dla 73 zamowien przypisz userow
mar1aczi
Ilość zamówień do obsłużenia pobierasz w chwili podziału do obsługi - np. uruchomienia skryptu.
Ogólnie, jeśli zamówienia mają się przypisywać "automagicznie" do wolnej osoby, to musisz "gdzieś" zapamiętać osobę, do której zostało przypisane poprzednie zamówienie. Gdy przychodzi kolejne, pobierasz ten zapisany identyfikator (czy jak to sobie rozwiążesz) i przypisujesz do kolejnej wolnej.
winiar789
Jasne tabelka w bazie i mam id_zamowienia id_uzytkowniak
teraz wpada kolejne zamowienie wiec ostatni rekord id_uzytkownika to 9
wiec przypada teraz ze nastepny id to bedzie 12 i dalej pytanie jak to wyciagnac sad.gif
mar1aczi
1. pobierasz id użytkownika z tabeli zamowienia_uzytkownicy dla którego zamówienie jest najświeższe (bądź ma największy numer)
2. pobierasz id użytkownika z tabeli użytkownicy, którego id jest większy od poprzednio pobranego (odpowiedni warunek w where + limit)
3. jeśli wynik z pkt 2 jest pusty, pobierasz id pierwszego wolnego użytkownika z tabeli użytkownicy
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.