Witam wszystkich to mój pierwszy post na forum więc proszę mnie oszczędzić
mam stronę na której są dwa formularze
1. dodawanie danych do bazy(cały czas widoczny)
2. edycja danych (pojawia sie dopiero po kliknieciu w link do edycji )
pierwszy formularz działa dobrze, drugi w połowie bo pojawiają się odpowiednie dane do edycji, jednak jak wprowadzę zmiany i klikne w przycisk popraw to i tak zadziała pierwszy submit i zamiast edytowac dane formularz dodaje nowy rekord (IMG:
style_emoticons/default/sad.gif)
na pewno mógłbym to rozwiązać gdyby formularze odwoływały sie do osobnych skryptów, jednak podoba mi się jak działa to wszystko na jednej stronie i chciałbym aby tak zostało, jednak sam nie potrafię zmusić tego do działania.
To jest mój pierwszy kontakt z PHP (ok 5 dni z tym walcze) więc proszę o wyrozumiałość.
załączam fragment kodu.
<form action="" method="post">
url:
<input type="text" name="url" /> słowo kluczowe:
<input type="text" name="keyword" /> <input type="submit" value="Dodaj" name="submit"/><br /><br/>
<?php
$url = $_POST['url'];
$keyword = $_POST['keyword'];
if($url and $keyword) {
// dodajemy rekord do bazy
$ins = @mysql_query("INSERT INTO static_data SET url='$url', keyword='$keyword', added_date='1234567890', active='1'");
if($ins) echo "Rekord został dodany poprawnie"; else echo "Błąd nie udało się dodać nowego rekordu";
}
?>
<?php
if($a == 'del' and
!empty($id)) {
/* usuwamy rekord */
echo 'Rekord został usunęty z bazy'; }
if($a == 'edit' and
!empty($id)) { /* zapytanie do tabeli */
$wynik = mysql_query("SELECT * FROM static_data WHERE id='$id'") or
die('Błąd zapytania'); /* wyświetlamy wyniki, sprawdzamy, czy zapytanie zwróciło wartość większą od 0 */
/* odczytujemy zawartość wiersza z tabeli */
/* wczytujemy dane do formularza */
/* w formularz znajdują się ukryte pola "a" z wartością "save" i pole "id" z wartością zmiennej id */
echo '<form action="" method="post"> <input type="hidden" name="a" value="save" />
<input type="hidden" name="id" value="'.$id.'" />
url:<input type="text" name="url" value="'.$lista['url'].'" /> keyword:<input type="text" name="keyword" value="'.$lista['keyword'].'" /> active:<input type="text" name="active" value="'.$lista['active'].'" /> <input type="submit" value="popraw" />
</form>';
}
}
elseif($a == 'save') {
/* odbieramy zmienne z formularza */
$id = $_POST['id'];
$url = trim($_POST['url']); $keyword = trim($_POST['keyword']); $active = trim($_POST['active']);
/* uaktualniamy tabelę */
mysql_query("UPDATE static_data SET url='$url', keyword='$keyword', active='$active' WHERE id='$id'") or
die('Błąd zapytania'); echo 'Dane zostały zaktualizowane'; }
// pobierabie wartości z tabeli
$sql = "SELECT id, url, keyword FROM static_data WHERE active = 1 ORDER BY url ASC";
// wyświetlanie rezultatu na ekranie
echo "<table cellpadding=\"2\" border=1>"; echo "<th>SŁOWO KLUCZOWE</th>"; echo "<th>SZCZEGÓŁY</th>"; echo "<td>".$lista['url']."</td>"; echo "<td>".$lista['keyword']."</td>"; echo "<td align=\"center\"><a href=\"stats.php?s=".$lista['id']."\">info</a></td>"; echo "<td align=\"center\"><a href=\"stats.php?a=edit&id=".$lista['id']."\">edytuj</a></td>"; echo "<td align=\"center\"><a href=\"stats.php?a=del&id=".$lista['id']."\">usuń</a></td>"; }
?>
kod to zlepek z tutoriali i kursów które przerobiłem w ostatnim czasie więc prosze nie krytukować jakości kodu, chociaż wszystkie sugestie mile widziane.