Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][SQL][PHP]Problem z edycją danych w bazie poprzez php
Kubzon
post 16.10.2012, 12:43:28
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 16.10.2012

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
CuteOne
post 16.10.2012, 13:12:45
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


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


Ten post edytował CuteOne 16.10.2012, 13:16:05
Go to the top of the page
+Quote Post
Kubzon
post 16.10.2012, 13:39:39
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 16.10.2012

Ostrzeżenie: (0%)
-----


Supe, dzięki za pomoc...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 16:39