mam problem z edycją danych w bazie za pomoca formularza php:
Kod
<meta content="text/html; charset=UTF-8" http-equiv="Content-type"> </meta>
Dzisiaj jest:
<?php
$link = mysqli_connect('xxxxxxxx' , 'xxxxxxxxxxxxx' , 'xxxxxxxxxxx');
if (!$link)
{
$output = 'Nie można połączyć się z serwerem bazy danych';
exit();
}
if (!mysqli_set_charset($link, 'utf8'))
{
$output = 'Nie można ustalić kodowania dla połączenia z bazą danych.';
exit();
}
if (!mysqli_select_db($link, 'xxxxxxxxxxxxxx'))
{
$output = 'Nie znaleziono bazy danych.';
exit();
}
$result = mysqli_query($link, 'SELECT * FROM kalendarz WHERE nr_zadania = 0');
if (!$result)
{
$error = 'Błąd odczytu:' . mysqli_error($link);
exit();
}
while ($row = mysqli_fetch_array($result))
{
$daty[] = array('id' => $row['id'], 'data' => $row['data'], 'nr_zadania' => $row['nr_zadania'], 'prelegent' => $row['prelegent']);
}
echo date("Y-m-d");
if (isset($_POST['rezerwuj']))
{
include 'db.inc.php';
$id = mysqli_real_escape_string($link, $_POST['id']);
$data = mysqli_real_escape_string($link, $_POST['data']);
$nr_zadania = mysqli_real_escape_string($link, $_POST['nr_zadania']);
$prelegent = mysqli_real_escape_string($link, $_POST['prelegent']);
$sql = "UPDATE kalendarz SET
nr_zadania='$nr_zadania',
prelegent='$prelegent'
WHERE id='$id'";
if (!mysqli_query($link, $sql))
{
$error = 'Wystąpił błąd podczas rejestracji';
}
echo 'Informację wysłano';
exit();
}
?>
<br><br>
<b>Dostępne terminy spotkań:</b><br>
<?php foreach ($daty as $data): ?>
<form method="post">
<input type="hidden" name="id" id="id" value="<?php echo htmlspecialchars($data['id'], ENT_QUOTES, 'UTF-8'); ?>" />
<?php echo htmlspecialchars($data['data'], ENT_QUOTES, 'UTF-8'); ?>
<input type="text" name="nr_zadania" id="nr_zadania" value="<?php echo htmlspecialchars($data['nr_zadania'], ENT_QUOTES, 'UTF-8'); ?>"/>
<input type="text" name="prelegent" id="prelegent" value="<?php echo htmlspecialchars($data['prelegent'], ENT_QUOTES, 'UTF-8'); ?>"/>
<input type="submit" name="rezerwuj" value="Rezerwuj" />
<br>
<?php endforeach; ?>
Dzisiaj jest:
<?php
$link = mysqli_connect('xxxxxxxx' , 'xxxxxxxxxxxxx' , 'xxxxxxxxxxx');
if (!$link)
{
$output = 'Nie można połączyć się z serwerem bazy danych';
exit();
}
if (!mysqli_set_charset($link, 'utf8'))
{
$output = 'Nie można ustalić kodowania dla połączenia z bazą danych.';
exit();
}
if (!mysqli_select_db($link, 'xxxxxxxxxxxxxx'))
{
$output = 'Nie znaleziono bazy danych.';
exit();
}
$result = mysqli_query($link, 'SELECT * FROM kalendarz WHERE nr_zadania = 0');
if (!$result)
{
$error = 'Błąd odczytu:' . mysqli_error($link);
exit();
}
while ($row = mysqli_fetch_array($result))
{
$daty[] = array('id' => $row['id'], 'data' => $row['data'], 'nr_zadania' => $row['nr_zadania'], 'prelegent' => $row['prelegent']);
}
echo date("Y-m-d");
if (isset($_POST['rezerwuj']))
{
include 'db.inc.php';
$id = mysqli_real_escape_string($link, $_POST['id']);
$data = mysqli_real_escape_string($link, $_POST['data']);
$nr_zadania = mysqli_real_escape_string($link, $_POST['nr_zadania']);
$prelegent = mysqli_real_escape_string($link, $_POST['prelegent']);
$sql = "UPDATE kalendarz SET
nr_zadania='$nr_zadania',
prelegent='$prelegent'
WHERE id='$id'";
if (!mysqli_query($link, $sql))
{
$error = 'Wystąpił błąd podczas rejestracji';
}
echo 'Informację wysłano';
exit();
}
?>
<br><br>
<b>Dostępne terminy spotkań:</b><br>
<?php foreach ($daty as $data): ?>
<form method="post">
<input type="hidden" name="id" id="id" value="<?php echo htmlspecialchars($data['id'], ENT_QUOTES, 'UTF-8'); ?>" />
<?php echo htmlspecialchars($data['data'], ENT_QUOTES, 'UTF-8'); ?>
<input type="text" name="nr_zadania" id="nr_zadania" value="<?php echo htmlspecialchars($data['nr_zadania'], ENT_QUOTES, 'UTF-8'); ?>"/>
<input type="text" name="prelegent" id="prelegent" value="<?php echo htmlspecialchars($data['prelegent'], ENT_QUOTES, 'UTF-8'); ?>"/>
<input type="submit" name="rezerwuj" value="Rezerwuj" />
<br>
<?php endforeach; ?>
W formularzu chodzi o to, że pobiera on z bazy danych terminy (id, data) możliwych spotkań (tam gdzie nr_zadania < 0). Użytkownik może podać swój nr zadania i prelegenta. Po wysłaniu formularza dane w bazie danych powinny zostać zaktualizowane o te informacje, a daty z uzupełnionymi polami (prelegent oraz nr_zadania) nie wyświetlone ponownie.
Pisałem to na podstawie jakiegoś innego formularza, ale niestety po kliknięciu rezerwuję, pojawia się napis "Informację wysłano", ale dane w bazie nie są aktualizowane. Proszę o pomoc i z góry dziękuje.