Witam,
Mam problem ze stworzeniem kodu, który utworzy mi fakturę oraz doda więcej niż 1 rekord do bazy.
baza wygląda tak:
schemat
Potrzebuję tego na zajęcia.
Z góry dziękuję za pomoc i poświęcony czas.
<?php require_once "connect/connectPDO.php"; try { if($_SERVER['REQUEST_METHOD'] == 'POST') { $stmt = $db -> prepare('INSERT INTO towar (id_towar, Nazwa, Rodzaj, VAT, CENA, STAN) VALUES( :id_towar, :Nazwa, :Rodzaj, :VAT, :CENA, :STAN'); // INSERT $stmt -> bindValue(':id_towar', $_POST['id_towar'], PDO::PARAM_STR); // POSZCZEGÓLNE KOLUMNY $stmt -> bindValue(':Nazwa', $_POST['Nazwa'], PDO::PARAM_STR); $stmt -> bindValue(':Rodzaj', $_POST['Rodzaj'], PDO::PARAM_INT); $stmt -> bindValue(':VAT', $_POST['VAT'], PDO::PARAM_STR); $stmt -> bindValue(':CENA', (float)$_POST['CENA'], PDO::PARAM_INT); $stmt -> bindValue(':STAN', $_POST['STAN'], PDO::PARAM_INT); // jeśli zawartości 3 komórek rekordu są już w bazie użyj update /*if()){ $db -> prepare ("UPDATE towar SET id_TOWAR=$_POST['id_TOWAR'], Nazwa=$_POST['Nazwa'], Rodzaj= $_POST['Rodzaj'], VAT=$_POST['VAT'], CENA=$_POST['CENA'], STAN=$_POST['STAN']"); }*/ $ilosc = $stmt -> execute(); // ilość dodanych rekordów if($ilosc > 0) { } else { } } else {//WPROWADZANIE DANYCH, FORMULARZ echo '<form method="post" action="pt.php"> <tr><td> ID: </td><td> Nazwa: </td><td> Rodzaj:<td>VAT%:</td><td> Cena:</td><td> Stan:</td></td><td> Akcja:</td></tr> <td><input style="height:100%; " type="int(11)" name="id_towar" /></td> <td><input style="height:100%; "type="varchar(100)" name="Nazwa" /> </td> <td><input style="height:100%; "type="varchar(100)" name="Rodzaj" /></td> <td><center><select style="font-size:30px"; " name="VAT"> <option value="NULL"> </option> <option value="23">23</option> <option value="24">24</option> <option value="7">7</option></center></td> <td><input style="height:100%; "type="decimal(20,2)" name="CENA" /></td> <td><input style="height:100%; "type="decimal(10,0)" name="STAN" /></td> </table> <input style="font-size:33px" type="submit" value="Dodaj" /> </form>'; } } catch(PDOException $e) { } ?>
function compareBoth(){ $foo = $handle->prepare("SELECT ****jakis autoincrement***** from towar where id_towar = :id_towar AND CENA =:CENA "); $id_towar = $_POST['id_towar']; $cena = $_POST['CENA']; $foo->bindParam(":id_towar",$id_towar, PDO::PARAM_STR); $foo->bindParam(":CENA",$cena, PDO::PARAM_INT); $foo->execute(); return $foo->rowCount()>0 ? true : false; }
if(!compareBoth()){ jak nie znajdzie zadnego rekordu to tutaj update }else{ jak znajdzie jakis rekord - to cos tam niech zrobi }
(i tu jest problem, bo nie wiem co dla klauzuli SET napisać)
UPDATE `towar` SET `STAN`=`towar.STAN`+ `przyjecie_towar.nastan` WHERE `id_towar` IN (SELECT * FROM `przyjecie_towar` WHERE `id_t` IN(SELECT `id_towar` FROM `towar`) AND `price` IN(SELECT `CENA` FROM `towar`)) AND `CENA`IN(SELECT * FROM `przyjecie_towar` WHERE `id_t` IN(SELECT `id_towar` FROM `towar`) AND `price` IN(SELECT `CENA` FROM `towar`))
INSERT INTO `towar` SELECT `id_t`, `name`, `type` ,`podvat`, `price`, `nastan` FROM `przyjecie_towar` WHERE `id_t` NOT IN(SELECT `id_towar` FROM `towar`) AND `price` NOT IN(SELECT `CENA` FROM `towar`) AND `podvat` NOT IN(SELECT `VAT` FROM `towar`)
<?php include('constant/header.php'); require_once "connect/connect.php"; $sel_vat="SELECT * FROM vat"; $z = $con->query($sel_vat); $mysql=$con->query("SELECT * FROM przyjecie_towar"); echo<<<echo <center> <div id="container"> <div class="content"> <table border=4 bordercolor="black" width="100%" height="50%"> <tr style="background-color: silver"><th>L.p.</th> <th>ID</th> <th>Nazwa</th> <th>Rodzaj</th> <th>VAT(%)</th> <th>CENA</th> <th>ILOŚĆ</th> <th>AKCJA</th> echo; while ($r = mysqli_fetch_assoc($mysql)) { //wyrównanie pola usun z odpowiednim id_TOWAR $idz=$r['id_p']; $id=$idz.-1 ; '</form>'; }; echo<<<end <form method="post" > <tr style="background-color: silver"> <td><center><input style="height:100%; " type="int(11)" name="idp" /></center></td> <td><center><input style="height:100%; " type="int(11)" name="idt" /></center></td> <td><center><input style="height:100%; "type="varchar(100)" name="name" /></center> </td> <td><center><input style="height:100%; "type="varchar(100)" name="type" /></center></td> <td><center><select style="height:100%; "type="decimal(10,0)" name="vat";> end; while ($r = $z->fetch_assoc()) { } echo<<<end </select></center></td> <td><center><input style="height:100%"; maxlength="100" "type="decimal(20,2)" name="price" /></center></td> <td><center><input style="height:100%; "type="decimal(10,0)" name="cond" /></center></td> <td><center><input type="submit" name="submit" value="Dodaj" /></center></td> </tr> </form> </table> </center> end; { $idp=$_POST['idp']; $idt=$_POST['idt']; $name=$_POST['name']; $type=$_POST['type']; $vat=$_POST['vat']; $price=$_POST['price']; $cond=$_POST['cond']; if (!$id || !$idt || !$name || !$type || !$vat || !$price || !$cond ) { echo<<<abs <div id="container"> <div class="content"> <h3>Nie podano wszystkich danych.</h3> </div> abs; @mysqli_close($con); echo<<<abs <div class="content"> <a id="back" href="http://localhost/magazyn/magazyn.php"></a> </div> abs; include('constant/footer.php'); exit; } $sql="INSERT INTO przyjecie_towar (id_p, id_t, name, type, podvat, price, nastan) VALUES ('$idp','$idt','$name','$type','$vat', '$price', '$cond')"; $ins = $con->query($sql); if (!$ins) { $sel="SELECT * FROM przyjecie_towar WHERE id_p='$idp' AND id_t='$idt'"; $ch= $con->query($sel); if($idp<=$ch||$idt<=$ch) { echo<<<abs <div id="container"> <div class="content"> <h3>Błędne ID lub L.p..</h3> </div> <div class="content"> <a id="back" href="http://localhost/magazyn/magazyn.php"></a> </div> abs; } include('constant/footer.php'); exit; } header("Location: <a href="http://localhost/magazyn/przyjecie.php"%3b%29;//odświerz" target="_blank">http://localhost/magazyn/przyjecie.php");//odświerz</a> }; { $delete=$con->query( "DELETE from przyjecie_towar WHERE id_p='$_POST[usun]'"); header("Location: <a href="http://localhost/magazyn/przyjecie.php"%3b%29;//odświerz" target="_blank">http://localhost/magazyn/przyjecie.php");//odświerz</a> }; ?> <div id="container"> <div class="content"> <a id="back" href="http://localhost/magazyn/magazyn.php"></a> </div> <?php include('constant/footer.php'); ?> </div>