Witam, mam stronę, na której po zalogowaniu można edytować dane w bazie.
Dodawać nowe rekordy, edytować istniejące i usuwać.
Mam następujący problem: Dodawanie i usuwanie działa bez problemu natomiast edycja już nie.
Pewnie jest to jakiś drobny błąd, ale siedzę nad tym bugiem już 2 dni i go nie wiedzę.
Może ktoś z Was "świeżym" okiem coś znajdzie.
function createForm($p_imie='', $p_miejscowosc='',$p_punkty='',$p_error='',$id='')
{
echo '<div class="tabela col-md-6 col-lg-10">';
if($id != '')
{
echo "Edytuj ranking: ";
} else {
echo "Dadaj nową kolumnę";
}
if($p_error != '') {
echo '<p class="error">'. $p_error ."</p>";
}
echo '<form action="" method="post">';
echo '<div class="form-group">';
if($id != '')
{
echo '<br ><input type="hidden" name="id" value="'. $id . ' " >';
echo "<p> Lp: " . $id . "</p>";
}
echo '<p><label> Imie: </label><br ><input class="form-group col-md-6" type="text" name="imie" value="' . $p_imie . ' " >' . "</p>";
echo '<p><label> Miejscowość: </label><br ><input class="form-group col-md-6" type="text" name="miejscowosc" value="' . $p_miejscowosc . ' " >' . "</p>";
echo '<p><label> Punkty: </label><br ><input class="form-group col-md-6" type="text" name="punkty" value="' . $p_punkty . ' " >' . "</p>";
echo '<input class="btn btn-info" type="submit" name="submit" value=" Wyślij">';
echo "</div>";
echo "</form>";
}
if(isset($_GET['id']))
{
/* Tryb edycji */
if(isset($_POST['submit'])) {
if(is_numeric($_POST['id'])) {
$id = $_POST['id'];
$imie = htmlentities($_POST['imie'], ENT_QUOTES);
$miejscowosc = htmlentities($_POST['miejscowosc'], ENT_QUOTES);
$punkty = htmlentities($_POST['punkty'], ENT_QUOTES);
if(($imie == '') || ($miejscowosc == '') || ($punkty == '')) {
$p_error = 'Wypełnij wszystkie pola';
createForm( $imie, $miejscowosc, $punkty, $p_error);
} else {
if($stmt = $polaczenie->prepare("UPDATE zawodnik SET imie = ?, miejscowosc = ?, punkty = ? WHERE id = ?")) {
$stmt->bind_param("ssii",$imie, $miejscowosc, $punkty, $id);
$stmt->execute();
$stmt->close();
} else {
echo "Wystąpił błąd ! Nie udało się edytować danych w bazie.";
}
header("Location: index.php");
}
}
} else {
if(is_numeric($_GET['id']) && $_GET['id'] > 0) {
$id = $_GET['id'];
if($stmt = $polaczenie->prepare("SELECT * FROM zawodnik WHERE id = ? ")) {
$stmt->bind_param("i",$id);
$stmt->execute();
$stmt->bind_result($id, $imie, $miejscowosc, $punkty);
$stmt->fetch();
createForm($imie,$miejscowosc, $punkty, NULL, $id);
$stmt->close();
} else {
echo "Wystąpił błąd ! Nie udało się edytować danych w bazie.";
}
} else {
header("Location: index.php");
}
}
} else
{
/*tryb nowego rekordu*/
if(isset($_POST['submit']))
{
$imie = htmlentities($_POST['imie'], ENT_QUOTES);
$miejscowosc = htmlentities($_POST['miejscowosc'], ENT_QUOTES);
$punkty = htmlentities($_POST['punkty'], ENT_QUOTES);
if(($imie == '') || ($miejscowosc == '') || ($punkty == ''))
{
$p_error = 'Wypełnij wszystkie pola';
createForm($imie, $miejscowosc, $punkty, $p_error);
} else
{
if($stmt = $polaczenie->prepare("INSERT zawodnik ( imie, miejscowosc, punkty) VALUES (?,?,?)"))
{
$stmt->bind_param("ssi", $imie, $miejscowosc, $punkty);
$stmt->execute();
$stmt->close();
} else {
echo "Błąd dodawania";
}
header("Location: index.php");
}
} else
{
createForm();
}
}
$polaczenie->close();
Ten kawałek kodu odpowiada za dodawanie nowych rekordów i edycje istniejących.
Będę wdzięczna za uwagi.