Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Notice: Undefined index
leikeli
post 18.01.2020, 16:33:57
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.01.2020

Ostrzeżenie: (0%)
-----


Cześć. Robię właśnie projekt prostego sklepu na zaliczenie przedmiotu na studia.
Mam formularz dodania produktu:
  1. <?php
  2. REQUIRE("config3prod.php");
  3. $nazwa=$_GET['nazwa'];
  4. $typ=$_GET['typ'];
  5. $dostawca=$_GET['dostawca'];
  6. $cena=$_GET['cena'];
  7.  
  8. $sql = mysqli_query($link, "INSERT INTO produkty (id,nazwa,typ,dostawca,cena) VALUES ('','$nazwa','$typ','$dostawca','$cena')");
  9.  
  10. echo "Wprowadzono poprawny rekord z danymi:"."<br>";
  11. echo "<b>"."NAZWA PRODUKTU:"."</b> "."$nazwa"."<br>";
  12. echo "<b>"."TYP:"."</b> "."$typ"."<br>";
  13. echo "<b>"."DOSTAWCA:"."</b> "."$dostawca"."<br>";
  14. echo "<b>"."CENA:"."</b> "."$cena"."<br>";
  15.  
  16. $link->close();
  17. ?>


a plik config3prod.php wygląda następująco:

  1. <?php
  2. include("config.php");
  3. $zapytanie = mysqli_query($link,"SELECT id, nazwa, typ, dostawca, cena FROM produkty");
  4. echo "<TABLE BORDER=2><TR><TD><b><i>id</i></b></TD><TD><b><i>nazwa</i></b></TD><TD><b><i>typ</i></b></TD><TD><b><i>dostawca</i></b></TD><TD><b><i>cena</i></b></TD>";
  5. while (list($id, $nazwa, $typ, $dostawca, $cena)=mysqli_Fetch_Row($zapytanie)){
  6. echo"<TR><TD>$id</TD><TD>$nazwa</TD><TD>$typ</TD><TD>$dostawca</TD><TD>$cena</TD></TR>";
  7. }
  8. print "</TABLE>";
  9. mysqli_free_result($zapytanie);
  10. ?>


Przy nacisnięciu dodaj w formularzu, dodaje pusty rekord do bazy i wyświetla powiadomienia:

Notice: Undefined index: nazwa in C:\xampp\htdocs\abc\dodajprod.php on line 3

Notice: Undefined index: typ in C:\xampp\htdocs\abc\dodajprod.php on line 4

Notice: Undefined index: dostawca in C:\xampp\htdocs\abc\dodajprod.php on line 5

Notice: Undefined index: cena in C:\xampp\htdocs\abc\dodajprod.php on line 6

Czy moglibyście spróbować mi pomóc w czym leży problem?

Ten post edytował leikeli 18.01.2020, 16:34:23
Go to the top of the page
+Quote Post
dublinka
post 18.01.2020, 16:43:42
Post #2





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


  1.  
  2. if(isset($_GET['nazwa']) && isset($_GET['dostawca']) && isset($_GET['cena']) && isset($_GET['typ']){
  3.  
  4. $nazwa=$_GET['nazwa'];
  5. $typ=$_GET['typ'];
  6. $dostawca=$_GET['dostawca'];
  7. $cena=$_GET['cena'];
  8. }


--------------------
Go to the top of the page
+Quote Post
leikeli
post 18.01.2020, 16:48:19
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.01.2020

Ostrzeżenie: (0%)
-----


Cytat(dublinka @ 18.01.2020, 16:43:42 ) *
  1.  
  2. if(isset($_GET['nazwa']) && isset($_GET['dostawca']) && isset($_GET['cena']) && isset($_GET['typ']){
  3.  
  4. $nazwa=$_GET['nazwa'];
  5. $typ=$_GET['typ'];
  6. $dostawca=$_GET['dostawca'];
  7. $cena=$_GET['cena'];
  8. }


Gdy to zrobię to pojawia się błąd: Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\abc\dodajprod.php on line 8
Go to the top of the page
+Quote Post
dublinka
post 18.01.2020, 16:50:43
Post #4





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Cytat(leikeli @ 18.01.2020, 15:48:19 ) *
Gdy to zrobię to pojawia się błąd: Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\abc\dodajprod.php on line 8

Pisze z palca. Tma jeszcze dodaj jeden nawias na samym koncu

  1. isset($_GET['typ'])) {

Jak to mozliwe ze robisz cos takiego jak sklep a nie wiesz takich podstaw

Ten post edytował dublinka 18.01.2020, 16:51:53


--------------------
Go to the top of the page
+Quote Post
leikeli
post 18.01.2020, 16:55:42
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.01.2020

Ostrzeżenie: (0%)
-----


Cytat(dublinka @ 18.01.2020, 16:50:43 ) *
Pisze z palca. Tma jeszcze dodaj jeden nawias na samym koncu

  1. isset($_GET['typ'])) {

Jak to mozliwe ze robisz cos takiego jak sklep a nie wiesz takich podstaw


Ponieważ jest to jak zaznaczyłem projekt na zaliczenie przedmiotu, a nie prawdziwy sklep tongue.gif

Teraz nie pojawia się już Notice ale nadal dodaje sie tylko pusty rekord do bazy, zamiast te które zostały wpisane w formularzu
Go to the top of the page
+Quote Post
dublinka
post 18.01.2020, 17:02:58
Post #6





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Po pierwsze pokaz formularz.
Dane wyswietlaja sie z tych zmiennych ?


--------------------
Go to the top of the page
+Quote Post
leikeli
post 18.01.2020, 17:09:20
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.01.2020

Ostrzeżenie: (0%)
-----


Cytat(dublinka @ 18.01.2020, 17:02:58 ) *
Po pierwsze pokaz formularz.
Dane wyswietlaja sie z tych zmiennych ?


O bardzo dziękuje, to właśnie w formularzu był głupi błąd!
Już wszystko działa jak należy.

Ten post edytował leikeli 18.01.2020, 17:09:51
Go to the top of the page
+Quote Post
vokiel
post 18.01.2020, 17:55:35
Post #8





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


W PHP 7 możesz wykorzystać "null coalescing operator":

  1. // Brak spacji między ? ? (dodałem bo edytor zamienia to na emoji)
  2. $nazwa = $_GET['nazwa'] ? ? 'brak nazwy';
  3. $typ = $_GET['typ'] ? ? 'brak typu';
  4. $dostawca = $_GET['dostawca'] ? ? 'brak dostawcy';
  5. $cena = $_GET['cena'] ? ? 'brak ceny';
  6.  
  7. // Co jest równoważne z:
  8. $nazwa = isset($_GET['nazwa']) ? $_GET['nazwa'] : 'brak nazwy';


Ten post edytował vokiel 18.01.2020, 17:56:54


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 18.01.2020, 20:53:56
Post #9





Grupa: Zarejestrowani
Postów: 1 828
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


@vokiel
Spokojnie można używać ?? bez zamiany na emotę, wystarczy wyłączyć uśmieszki przed dodaniem odpowiedzi

  1. $nazwa = $_GET['nazwa'] ?? 'brak nazwy';
  2. $typ = $_GET['typ'] ?? 'brak typu';
  3. $dostawca = $_GET['dostawca'] ?? 'brak dostawcy';
  4. $cena = $_GET['cena'] ?? 'brak ceny';
  5.  
  6. // Co jest równoważne z:
  7. $nazwa = isset($_GET['nazwa']) ? $_GET['nazwa'] : 'brak nazwy';
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 21:44