Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie danych do bazy - która opcja lepsza
Forum PHP.pl > Forum > Przedszkole
kecajs
Witam,
chciałem się czegoś nowego nauczyć i wymyśliłem sobie małą aplikację, jednak ugrzązłem praktycznie na początku :(
Generalnie chodzi o programik pozwalający zapanować nad wydawanym towarem.
W MySQL mam tabele:
(1) tb_laczniki_wyjscie - kolumny: LaczWydID (Primary, A.I.), LacznikID (Index do tb_laczniki_main - LacznikID), DataZam, NrZam, IloscZam;

(2) tb_laczniki_main - kolumny: LacznikID (Primary, A.I.), Nazwa, Material, Norma

Cel jest taki, aby przez formularz przesłać do tabeli nr (1) informacje o tym, jakie łączniki i w jakiej ilości są zamawiane (pola edytowalne), a także dorzucenie do bazy daty składanego zamówienia (aktualnej, bez możliwości edycji).
Nie wiem, które rozwiązanie będzie poprawniejsze pod względem projektowania i prostrze do oprogramowania i tu proszę o podpowiedź.
Zastanawiam się nad rozwiązaniem tego w ten sposób:
(1) W formularzu wywołuję poleceniem SELECT wszystkie rekordy z tabeli (2) w układzie LacznikID, Nazwa, Material, Norma i dodatkowo z tabeli (1) IloscZam. Następnie po uzupełnieniu ilości wysyłam do bazy, do tabeli (1) i kolumn LacznikID, DataZam, NrZam i IloscZam tylko te rekordy, których wartość w komórce IloscZam jest większa niż 0, ewentualnie wszystkich jak leci (ok. 100 indeksów).
(2) W formularzu tworzę listę rozwijaną pobierającą dane z tabeli (2) - LacznikID, Nazwa, Material i Norma i mam dodatkowe pole, w którym wpisuję ilość. Po kliknięciu wstaw, dane zapisywane są jak w powyższym przykładzie.
Na logikę wydaje się, że sposób (1) jest łatwiejszy do obsłużenia z punktu widzenia użytkownika, ale czy nie będzie problemów z przekazaniem do bazy takiej ilości danych. No i jak uwzględnić aktualną datę podczas przekazywania danych do bazy. Nie ma sensu tworzyć pola nie aktywnego w formularzu.
Będę wdzięczny za Wasze opinie i sugestie.
Nie mam za wiele co zamieszczać kodu, bo jeszcze nie ruszyłem z tymi zagadnieniami :)
Pozdrawiam,
szakal
mmmmmmm
Sposób 1 jest idiotyczny. Spowoduje mnóstwo problemów, których w tym momencie nawet nie mozna przewidziec.
Sposób drugi jest dobry.
A datę możesz uzupełnić, albo przez dodanie wartości domyślniej na pole w tabeli, albo dopisując w select np. Date(NOW())
kecajs
Co do drugiego rozwiązania, to mam coś takiego:
  1. <?php
  2. // tutaj wywolanie zapytania do bazy
  3. $zapytanie = mysql_query ("SELECT LacznikID, Nazwa, Material, Norma FROM tb_laczniki_main ORDER BY LacznikID ASC");
  4.  
  5. echo '<select name="dane">';
  6.  
  7. echo '<option value="">Wybierz rodzaj łącznika</option>';
  8.  
  9. while($option = mysql_fetch_assoc($zapytanie)) {
  10.  
  11. echo '<option value="'.$option['Nazwa'].'">'.$option['Nazwa'].' </option>';
  12.  
  13. }
  14.  
  15. echo '</select>';
  16.  
  17. ?>

Zależy mi, aby z bazy były wyciągnięte wartości z kolumn: Nazwa, Material i Norma (tabela tb_laczniki_main) i wyświetlone w jednym ciągu, oddzielone np. przecinkami - przykład: Śruba M20 x 150, 10.9 tZn, ISO 4014.
Domyślam się, że muszę pokombinować z linią
  1. echo '<option value="'.$option['Nazwa'].'">'.$option['Nazwa'].' </option>';
, tylko za bardzo nie wiem, jak połączyć poszczególne dane - przecinkiem?
Może coś takiego:
  1. echo '<option value="'.$option['Nazwa'].'">'.$option['Nazwa'].' ',' "'.$option['Material'].'">'.$option['Material'].' ',' "'.$option['Norma'].'">'.$option['Norma'].' </option>';

ma to sens?

Cytat(mmmmmmm @ 31.07.2015, 08:15:02 ) *
Sposób 1 jest idiotyczny. Spowoduje mnóstwo problemów, których w tym momencie nawet nie mozna przewidziec.

A w jaki sposób można przyspieszyć wprowadzanie danych? W przypadku drugiego sposobu trzeba każdą pozycję osobno wprowadzić. Jeśli będziemy mieli kilkanaście lub kilkadziesiąt pozycji, trochę to zajmie. A pierwszy sposób pozwala - przynajmniej teoretycznie - dość szybko wprowadzić ilości zamawianego towaru przy właściwych pozycjach.
Idea jest taka, aby każde zamówienie trafiało do tabeli tb_laczniki_wyjscie, otrzymywało tam numer kolejny i tyle. Na chwilę obecną nie ma za bardzo potrzeby zajmowania się ilościami danych trafiającymi do bazy. Tak sobie myślę, że jakby w każdą pustą komórkę z kolumny 'Ilość zamówiona' przy wyjściu dodawane było automatycznie 0, to nie powinno chyba być problemów?
A może jest inne rozwiązanie?
szakal
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.