• 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

VPS Starter Arubacloud
0 głosów
189 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 (25,130 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 (86,280 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 (251,210 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,710 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 (251,210 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ź 79 wizyt
pytanie zadane 19 lutego w SQL, bazy danych przez Piotrek2713 Mądrala (5,320 p.)
0 głosów
1 odpowiedź 212 wizyt
pytanie zadane 13 stycznia 2023 w C# przez chrystian Gaduła (4,780 p.)
0 głosów
1 odpowiedź 1,505 wizyt

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...