Tym razem chce zaktualizować bazę danych przez przycisk edytuj.
Wszystko fajnie, tylko w katalogu muszę odjąć to, co wcześniej było dodane i teraz dodać nowy rekord, który doda wartości do katalogu. Przykład:
Dodałem 5 jabłek
Pomyliłem się! Chciałem dodać 7 Gruszek!
i teraz najpierw muszę odjąć 5 jabłek z katalogu, potem zedytować przyjecie towaru na 7 gruszek no i do stanu w katalogu dodać 7 gruszek.
Wszystko fajnie, dodaje mi stan Gruszek, ale nie chce odjąć stanu jabłek, czyli jakbym poprostu dodał nowy rekord. Podaję trzy pliki:
tabelka produktów z getem do edycji:
zmianaprzyjecia.php
<html> <head> </head> <body> <?php $sql = "SELECT przyjecie.idp, przyjecie.szyba, przyjecie.ilosc_szyb, przyjecie.dataprzyjecia, katalog.nazwaszyby, katalog.ids FROM przyjecie, katalog where przyjecie.szyba = katalog.ids and przyjecie.dataprzyjecia = CURDATE()"; echo '<table border="1" bgcolor="white"><tr><th>Numer przyjecia</th><th>Nazwa szyby</th><th>ilosc</th><th>data przyjecia</th><th>Edycja</th></tr>'; echo "<tr><td>{$row['idp']}</td><td>{$row['nazwaszyby']}</td><td>{$row['ilosc_szyb']}</td><td>{$row['dataprzyjecia']}</td><td><a href=\"edycjaprzyjecia.php?a=edit&idp={$row['idp']}\">EDIT</a> </td></tr>"; } ?> </body> </html>
Teraz plik który wyświetla edytowany plik i daje możliwość zmiany danych:
edycjaprzyjecia.php
<html> <head> </head> <body> <?php $idp=$_GET['idp']; $sql = "SELECT przyjecie.idp, przyjecie.szyba, przyjecie.ilosc_szyb, przyjecie.dataprzyjecia, katalog.nazwaszyby, katalog.ids FROM przyjecie, katalog where przyjecie.szyba = katalog.ids and idp=$idp"; echo '<table border="1" bgcolor="white"><tr><th>Numer przyjecia</th><th>Nazwa szyby</th><th>ilosc</th><th>data przyjecia</th></tr>'; echo "<tr><td>{$row['idp']}</td><td>{$row['nazwaszyby']}</td><td>{$row['ilosc_szyb']}</td><td>{$row['dataprzyjecia']}</td></tr>"; } $dupa = mysql_query("SELECT * FROM przyjecie WHERE idp=$idp ORDER BY ilosc_szyb DESC LIMIT 1") or die (mysql_error()); $iloscpoprzednia=$rowa["ilosc_szyb"]; echo '<form action="upprzyjecie.php" method="post"> ilosc: <input type="text" name="iloscup"><input type="text" name="iloscpoprzednia" value="'.$iloscpoprzednia.'" disabled="disabled"> <input type="text" name="idp" value="'.$idp.'" disabled="disabled"> <br/>szyba: <select name="idsp">'; { { } } echo '</select> <br/><input type="submit" value="Zmien"></form>'; ?>
i trzeci plik, który ma wykonać tą edycję.
upprzyjecie.php
<html> <head> </head> <body> <?php $ids= $_POST['ids'];// $iloscup= $_POST['iloscup']; $iloscpoprzednia= $_POST['iloscpoprzednia'];// $idp=$_POST['idp'];// $idsp=$_POST['idsp']; $sql = ("UPDATE katalog SET ilosc=ilosc-$iloscpoprzednia WHERE ids=$ids") ; $sql2 = ("INSERT INTO przyjecie SET idp='$idp', szyba='$idsp', ilosc_szyb='$iloscup', dataprzyjecia=NOW(), zmianap=TRUE"); $sql = ("UPDATE katalog SET ilosc=ilosc+$iloscup WHERE ids=$idsp") ; //$sql3 = ("INSERT INTO przyjecie(dataprzyjecia) VALUES(NOW())"); //$result3=mysql_query($sql3); ?> <br> <a href="index.php">powrot</a> </body> </html>
Tak więc otrzymuję po kliknięciu do 3 pliku:
Notice: Undefined index: ids in C:\xampp\htdocs\magazyn\upprzyjecie.php on line 6
Notice: Undefined index: iloscpoprzednia in C:\xampp\htdocs\magazyn\upprzyjecie.php on line 8
Notice: Undefined index: idp in C:\xampp\htdocs\magazyn\upprzyjecie.php on line 9
Czyli że te zmienne są niezdefiniowane, chociaż przekazuję je z poprzedniego formularza??
I to co przesyła do 3 pliku:
Array ( [iloscup] => 2 [idsp] => 1 ) poprawiono szybe
czyli dalej idzie tylko iloscup i idsp
Nie przechodzą zmienne: ids, iloscpoprzednia i idp te dwie są wrzucane w formularzu jako wcześniejsze zmienne, może to źle robię? a ids jest wysyłana getem z 1 pliku i nie wiem, czy w 2 dobrze ją przekazuje.
To tyle. Możecie mnie wyśmiać za banalność mojego błędu, nie obrażę się, tylko pomóżcie

Pozdro!