• 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 3 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
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

85,708 zapytań

134,502 odpowiedzi

298,523 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.

...