Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

Problem z skryptem php pobierającym dane z bazy


MocnyTIVI

Pytanie

Opublikowano

Witam mam problem ze skryptem nie potrafie zrobic tak aby wyswietlalo sie nazwa,opis,cena ktore da sie zaaktualizowac poprzez strone www w bazie danych.

 

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<?php

include 'connect.php';
$id = $_GET['idoferty'];
$q = " Select nazwa, opis, cena FROM oferta where idoferty='$id'";
$rezultat=$conn->query($q);
$row=$rezultat->fetch_row();
$nazwa=$row[0];
if(isset($_POST['wyslij'])){
$id = $_GET['idoferty'];
$nazwa = $_POST['nazwa'];
$opis = $_POST['opis'];
$cena = $_POST['cena'];
$q = " update oferta set nazwa='$nazwa', opis='$opis', cena='$cena' where idoferty=$id ";
if ($conn->query($q)===TRUE){
    header("Location: paneluz.php");
    die();
} else{
    echo "Błąd podczas aktualizowania danych";
}

$conn->close();

}
?>
<form method="POST">
Nazwa stylu <br>
<input type="text" name="nazwa" value="<?php echo $nazwa; ?>"><br>
<input type="text" name="opis" value="<?php echo $opis; ?>"><br>
<input type="text" name="cena" value="<?php echo $cena; ?>"><br>
<input type="submit" name="wyslij" value="Wyślij">
</form>
</body>
</html>

 

 

LowPriv.pl

7 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Opublikowano

https://pastebin.com/MtrcPVSQ - update.php

https://pastebin.com/u4vkL7DT - connect.php

https://pastebin.com/AWE5iLZU - baza danych serwis

 

Zapisz sobie to jak jest i zobacz jak to wygląda.

 

https://pastebin.com/RwNuz3P1 - jeszcze panelużytkownika to przez niego edytuje sie dane

ss.PNG

Tak jak napisalem wyswietla sie tylko nazwa.

LowPriv.pl

Opublikowano
8 minut temu, MocnyTIVI napisał:

https://pastebin.com/MtrcPVSQ - update.php

https://pastebin.com/u4vkL7DT - connect.php

https://pastebin.com/AWE5iLZU - baza danych serwis

 

Zapisz sobie to jak jest i zobacz jak to wygląda.

https://pastebin.com/nVCFK6dG


Tak to powinno wszysto wyglądać w twoim przypadku. Takowy error się pojawia ponieważ zmienne byly zdefiniowane w warunku isset.

Opublikowano

Jakieś errory? czy coś. To powinno załatwić twój problem.

$q = "UPDATE oferta SET nazwa=".$nazwa." cena=".$cena." opis=".$opis." WHERE idoferty=".$id.";";

Znak '.' w php jest to znak konkatenacji, czyli przyłączania jakichś zmiennych czy ciągów znaków do innych, w php aby dobrze wykonać zapytanie ze zmienną należy stosować taki zapis, poniewaz inaczej to nie zadziała według oczekiwań.

Ekwiwalent tego zapisu w pythonie czy w większosci innych języków jest to po prostu +

 

I lepiej też poprawić niektóre wyrażenia w kodzie, np takie coś.


# DOBRZE
if($conn->query($q)){
    header("Location: paneluz.php");
    die();
}

# ZLE
if ($conn->query($q)===TRUE){
    header("Location: paneluz.php");
    die();
}

 

Opublikowano

Ogolnie nie chodzi o to poniewaz posiadam na stronie 3 miejsca na zmiane danych i kazdy z nich powinien sie pojawic w tej linijce tzn. nazwa,opis,cena a pokazuje sie tylko nazwa w 1 boxie a w 2 pozostalych jest cos takiego: <br /><b>Notice</b>:  Undefined variable: opis in <b>C:\xampp\htdocs\szablon\update.php</b> on line <b>36</b><br />

LowPriv.pl

Opublikowano

Najlepiej pokaż ss z tego co ci się tam wyświetla i wstaw ten kod w znacznik 'code' lub wrzuć na jakiś pastebin.
Możesz podesłać baze danych? odpale na lokalu i zobacze co tam jest nie tak.

 

Dobra już widzę gdzie masz błąd, dzieje się tak jak napisałeś dlatego, że zmienną $nazwa masz zadeklarowaną poza warunkiem, który sprawdza czy przycisk jest wciśnięty i dopiero jak wyślesz formularz to ta zmienna jest utworzona, zdaeklaruj je poza wraunkiem.

 

Do moich wskazówek wyżej też mógłbyś się zastosować i domyślam się, że ten sql statment, który tam masz nie zadziała.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...