Więc tak. Najpierw łączę się z bazą i wyświetlam listę rekordów za pomocą poniższej pętli:
Kod
$i = 1;
while($wyswietl = mysql_fetch_array($result)) {
$id = $wyswietl['id'];
$nazwa = $wyswietl['nazwa'];
$lista .=<<<EOD
<tr>
<td>$i</td>
<td>$nazwa</td>
<td><a href="usun_kategorie.php?type=zmien&id=$id&nazwa=$nazwa">Zmień</a></td>
</tr>
EOD;
$i++;
}
while($wyswietl = mysql_fetch_array($result)) {
$id = $wyswietl['id'];
$nazwa = $wyswietl['nazwa'];
$lista .=<<<EOD
<tr>
<td>$i</td>
<td>$nazwa</td>
<td><a href="usun_kategorie.php?type=zmien&id=$id&nazwa=$nazwa">Zmień</a></td>
</tr>
EOD;
$i++;
}
Gdy kliknę w link "zmien" uruchamia się strona z formularzem:
Kod
<form action="usun_kategorie.php?opcja=edit" method="post">
<input type="text" name="nowa_nazwa" size="20">
<input type="submit" name="wyslij" value="Dodaj">
</form>
<input type="text" name="nowa_nazwa" size="20">
<input type="submit" name="wyslij" value="Dodaj">
</form>
Gdy wyślę nową nazwę wpisaną w formularzu otwiera się jeszcze raz ta sama strona z tym, że użyłem instrukcji warunkowej if która dokona zmian w rekordzie:
Kod
if(isset($_GET['opcja']) == edit) {
$edytuj = "UPDATE kategorie SET nazwa = '" . $_GET['nowa_nazwa'] . "' WHERE id = '" . $_GET['id'] . "'";
$result = mysql_query($edytuj) or
die("Edycja kategorii nie powiodła się!" . mysql_error());
echo "<p id=\"text\">Edycja nazwy kategorii powiodła się.</p>";
$edytuj = "UPDATE kategorie SET nazwa = '" . $_GET['nowa_nazwa'] . "' WHERE id = '" . $_GET['id'] . "'";
$result = mysql_query($edytuj) or
die("Edycja kategorii nie powiodła się!" . mysql_error());
echo "<p id=\"text\">Edycja nazwy kategorii powiodła się.</p>";
Dziwne jest, że gdy wpiszę nową nazwę dla kategorii w formularzu otrzymuje potwierdzenie, że została zmieniona a gdy sprawdzam rekord w bazie albo przez stronę nie zmienia się
