Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][SQL][PHP]Problem z edycją danych w bazie poprzez php
Forum PHP.pl > Forum > Przedszkole
Kubzon
Witam,

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; ?>


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.
CuteOne
Brak daty w formularzu, co możesz sprawdzić w następujący sposób
  1. echo '<pre>';print_r($_POST);die();
  2.  
  3. include 'db.inc.php';
  4. $id = mysqli_real_escape_string($link, $_POST['id']);
  5. $data = mysqli_real_escape_string($link, $_POST['data']);
  6. $nr_zadania = mysqli_real_escape_string($link, $_POST['nr_zadania']);
  7. $prelegent = mysqli_real_escape_string($link, $_POST['prelegent']);
  8. $sql = "UPDATE kalendarz SET
  9. nr_zadania='$nr_zadania',
  10. ///....


ps. po co ci zmienna $output skoro i tak jej nie używasz... ?
ps2. zamiast jakiegoś niespójnego komunikatu daj
  1. mysqli_query($link, $sql) or die(mysqli_error($link));
Kubzon
Supe, dzięki za pomoc...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.