• 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

0 głosów
103 wizyt
pytanie zadane 4 dni temu w PHP przez kemeemek Nowicjusz (120 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 4 dni temu przez wizarddos Pasjonat (15,160 p.)

Polecam zamiast funkcji query używać poleceń przygotowanych

komentarz 4 dni temu przez ScriptyChris Mędrzec (168,320 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 4 dni temu przez kemeemek Nowicjusz (120 p.)

@ScriptyChris, Niestety nie jest to przyczyną.

komentarz 4 dni temu przez kemeemek Nowicjusz (120 p.)
Dodam jeszcze, że strona nie wyrzuca żadnych błędów.
komentarz 4 dni temu przez SzkolnyAdmin Maniak (61,980 p.)
A może problem lezy po stronie bazy, próbowałes ręcznie dodać/odczytać dane?
komentarz 3 dni temu przez kemeemek Nowicjusz (120 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 3 dni temu przez Michał Kazula Pasjonat (19,020 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 3 dni temu przez VBService VIP (136,750 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ź 3 dni temu przez Chess Szeryf (75,030 p.)
edycja 3 dni temu 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ź 3 dni temu przez VBService VIP (136,750 p.)
edycja 3 dni temu 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ź 974 wizyt
0 głosów
1 odpowiedź 89 wizyt
pytanie zadane 1 sierpnia 2018 w PHP przez hiveplay Początkujący (430 p.)
0 głosów
1 odpowiedź 64 wizyt
pytanie zadane 25 marca 2020 w PHP przez Pico Użytkownik (990 p.)
Porady nie od parady
Nie wiesz jak poprawnie zredagować pytanie lub pragniesz poznać którąś z funkcji forum? Odwiedź podstronę Pomoc (FAQ) dostępną w menu pod ikoną apteczki.FAQ

85,708 zapytań

134,503 odpowiedzi

298,528 komentarzy

56,629 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...