Dopisanie do bazy listy materiałowej

0

Witam. Próbuję dopisać do bazy danych tzw. BOM czyli listę materiałów, które składają się na kompletne urządzenie.
Mam tabelę "bom" gdzie mam wyszczególnione nazwy kompletnych urządzeń ("nazwa"), potrzebne materiały ("material") i ich ilości ("mat_ilosc").
W pierwszym formularzu wybieram BOM i podaję ilość kompletnych urządzeń.
Następnie odbieram dane z pierwszego formularza i tworzę drugi z przeliczeniem ilości dla poszczególnych materiałów:

<?php
$bom_nazwa = mysqli_real_escape_string($connect, $_POST['bom']);
$bom_ilosc = mysqli_real_escape_string($connect, $_POST['ilosc']);

$zapytanie = "SELECT * FROM bom WHERE nazwa = '$bom_nazwa' ORDER BY material ASC";
$wykonaj = mysqli_query ($connect, $zapytanie);
while ($wiersz=mysqli_fetch_array ($wykonaj)) {

echo '<tr>
            <td><input type="text" name="bom" value="'.$wiersz['nazwa'].'"></td>
            <td><input type="text" name="material" value="'.$wiersz['material'].'"></td>
            <td><input type="text" name="ilosc" value="'.$wiersz['mat_ilosc'] * $bom_ilosc.'"></td>
      </tr>';
}
?>

I teraz odbieram dane z drugiego formularza i chciałbym dopisać do bazy wyliczone ilości dla wszystkich materiałów występujących na wybranym BOM-ie
i nie wiem jak się za to zabrać. Proszę o pomoc, najlepiej na przykładzie.

4

I teraz odbieram dane z drugiego formularza i chciałbym dopisać do bazy wyliczone ilości dla wszystkich materiałów występujących na wybranym BOM-ie
i nie wiem jak się za to zabrać. Proszę o pomoc, najlepiej na przykładzie.

Trochę tego nie rozumiem. Co dokładnie chcesz zapisać? Bo tak naprawdę żeby wiedzieć ile jest potrzebnych materiałów wystarczy zapis ilości wybranych całych produktów.
Jeśli produkt składa się z uchwytu, nakrętki i śrubki. To mając informacje, że ktoś chce 3 produkty wiemy, że potrzebne będą trzy uchwyty, 3 śrubki, 3 nakrętki.

0

Niby tak, ale formularz jest edytowalny, więc gdyby realnie zużyto 4 nakrętki (zamiast normatywnych 3) to ze stanu odejmuję 4 szt, a nie 3. Chodzi mi o rozbicie BOM-a na poszczególne wiersze materiałowe i w takiej formie dalsze działania w bazie.

0

@maza66: No to tworzysz tabelę used_meterials i tam zapisujesz jaki materiał, w jakiej ilości i do czego został użyty :)

1
maza66 napisał(a):
echo '<tr>
            <td><input type="text" name="bom" value="'.$wiersz['nazwa'].'"></td>
            <td><input type="text" name="material" value="'.$wiersz['material'].'"></td>
            <td><input type="text" name="ilosc" value="'.$wiersz['mat_ilosc'] * $bom_ilosc.'"></td>
      </tr>';
}
?>

Masz gwarantowane XSS.

Zrób tak

<?php
echo '<tr>
            <td><input type="text" name="bom" value="'.htmlEntities($wiersz['nazwa']).'"></td>
            <td><input type="text" name="material" value="'.htmlEntities($wiersz['material']).'"></td>
            <td><input type="text" name="ilosc" value="'.htmlEntities($wiersz['mat_ilosc'] * $bom_ilosc).'"></td>
      </tr>';
}
?>
0

Dzięki.Poprawię.

1 użytkowników online, w tym zalogowanych: 0, gości: 1