• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przycisk nie wysyła danych do bazy

Aruba Cloud - Virtual Private Server VPS
0 głosów
274 wizyt
pytanie zadane 23 listopada 2021 w PHP przez kemeemek Nowicjusz (140 p.)

Witam, byłby ktoś tak miły i powiedział mi dlaczego po naciśnięciu przycisku nie wysyła on danych?

 


<?php

include "connect.php";

$id = (isset($_POST['id']) ? $_POST['id'] : '');

$qry = mysqli_query($conn,"select * from podstawowa where id='$id'");

$data = mysqli_fetch_array($qry);

if(isset($_POST["update"]))
{
    $tytul = $_POST['Tytuł'];
    $gatunek = $_POST['Gatunek'];
    $dataw = $_POST['Data_wykonania'];
    $platforma = $_POST['Platforma'];
    $nosnik = $_POST['Nośnik'];
    $srednia = $_POST['Średnia_ocena'];
	
    $edit = mysqli_query($conn,"UPDATE `podstawowa` SET `Tytuł`='$tytul',`Gatunek`='$gatunek',`Data wykonania`='$dataw',`Platforma`='$platforma',`Nośnik`='$nosnik',`Średnia ocena`='$srednia' where id='$id'"); var_dump($edit);
	
    if($edit)
    {
        echo("Zmodyfikowano");
        mysqli_close($conn);
        header("location:update.php");
        exit;
    }
    else
    {
        echo mysqli_error();
    }    	
}
?>

<h3>Update Data</h3>

<form method="POST" action="edytuj.php">
  <input type="text" name="Tytuł" value="<?php echo $data['Tytuł'] ?>" placeholder="Wprowadź tytuł" Required>
  <input type="text" name="Gatunek" value="<?php echo $data['Gatunek'] ?>" placeholder="Wprowadź gatunek" Required>
  <input type="text" name="Data_wykonania" value="<?php echo $data['Data_wykonania'] ?>" placeholder="Wprowadź datę wydania" Required>
  <input type="text" name="Platforma" value="<?php echo $data['Platforma'] ?>" placeholder="Wprowadź platformę" Required>
  <input type="text" name="Nośnik" value="<?php echo $data['Nośnik'] ?>" placeholder="Wprowadź nośniki" Required>
  <input type="text" name="Średnia_ocena" value="<?php echo $data['Średnia_ocena'] ?>" placeholder="Wprowadź średnią ocenę" Required>
  <input type="submit" name="update" value="Edytuj">


</form>

 

komentarz 23 listopada 2021 przez wizarddos Nałogowiec (27,550 p.)

Polecam zamiast funkcji query używać poleceń przygotowanych

komentarz 23 listopada 2021 przez ScriptyChris Mędrzec (190,190 p.)

Nie widzę, żebyś w formularzu miał jakąś kontrolkę o name="id", a odczytujesz id z $_POST na początku i jako fallback ustawiasz pusty string. Może to jest przyczyna?

komentarz 23 listopada 2021 przez kemeemek Nowicjusz (140 p.)

@ScriptyChris, Niestety nie jest to przyczyną.

komentarz 23 listopada 2021 przez kemeemek Nowicjusz (140 p.)
Dodam jeszcze, że strona nie wyrzuca żadnych błędów.
komentarz 23 listopada 2021 przez SzkolnyAdmin Szeryf (89,570 p.)
A może problem lezy po stronie bazy, próbowałes ręcznie dodać/odczytać dane?
komentarz 23 listopada 2021 przez kemeemek Nowicjusz (140 p.)
Z baza jest wszystko w porządku, wszystko po stronie bazy działa jak należy. Inne skrypty php, które dodają rekordy do bazy również.
komentarz 23 listopada 2021 przez Michał Kazula Pasjonat (19,540 p.)

@kemeemek, 

Linia 11. Jesteś pewien że masz taki index w tablicy POST?! 

Czy ten kod co nam pokazujesz znajduje się w pliku edytuj.php?

Co jest w zmiennej $conn? 

komentarz 24 listopada 2021 przez VBService Ekspert (256,600 p.)

Linia 11. Jesteś pewien że masz taki index w tablicy POST?! 

tak ma   wink

Linia 45.  <input type="submit" name="update" value="Edytuj">

Co jest w zmiennej $conn? 

prawdopodobnie jest (jest inicjalizowana) w pliku: include "connect.php";

2 odpowiedzi

+1 głos
odpowiedź 24 listopada 2021 przez Chess Szeryf (76,730 p.)
edycja 24 listopada 2021 przez Chess

I. rzecz jaką musisz zrobić, to skopiować wszystkie polecenia SQL podstawiając dane do konsoli CMD i sprawdzeniu błędów.
 

SELECT * FROM `podstawowa` WHERE `id`='8';


W ten sposób. Według mnie id powinno być bez apostrofów. Gdy id jest liczbą, w przeciwnym razie stosuje się typ string.

0 głosów
odpowiedź 24 listopada 2021 przez VBService Ekspert (256,600 p.)
edycja 24 listopada 2021 przez VBService

W tabeli podstawowa, sprawdź który zapis tych kolumn jest prawidłowy, bo raz masz

z SELECT

$qry = mysqli_query($conn,"select * from podstawowa where id='$id'");
 
$data = mysqli_fetch_array($qry);
$data['Data_wykonania']

$data['Średnia_ocena']

 

a w UPDATE, masz

$edit = mysqli_query($conn,"UPDATE `podstawowa` SET `Tytuł`='$tytul',
                           `Gatunek`='$gatunek',
                           `Data wykonania`='$dataw',
                           `Platforma`='$platforma',
                           `Nośnik`='$nosnik',
                           `Średnia ocena`='$srednia' where id='$id'");
`Data wykonania`='$dataw'

`Średnia ocena`='$srednia'

którą wartość masz w bazie danych z podkreśleniem czy ze spacją.

 

Jesli id jest typu INT w bazie danych, a zgaduję, że tak, to wystarczy

id=$id

lub

`id`=$id

 

Podobne pytania

0 głosów
1 odpowiedź 309 wizyt
pytanie zadane 19 lutego 2024 w SQL, bazy danych przez Piotrek2713 Mądrala (5,520 p.)
0 głosów
1 odpowiedź 369 wizyt
pytanie zadane 13 stycznia 2023 w C# przez chrystian Gaduła (4,780 p.)
0 głosów
1 odpowiedź 1,776 wizyt

93,329 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,663 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...