Witam ponownie. Pewnie mój problem będzie dla was śmieszny, ale siedzę nad tym gównem od 7 rano i nadal zero, pomimo prób.
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>"; }
$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">';
$array = mysql_query('SELECT * FROM katalog ORDER BY ids ASC');
{
{
echo "<option value='{$l['ids']}'>{$l['nazwaszyby']}</option>"; }
}
<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);
if($result) echo "poprawiono szybe"; else echo "Blad, sproboj ponownie";
?>
<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!
Ten post edytował mario_7 14.03.2013, 09:30:03