Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Formularz, użycie isset
Forum PHP.pl > Forum > Przedszkole
pablo663
  1. <title>Dodawanie skladników</title>
  2. </head>
  3.  
  4. <?php
  5.  
  6. include("baza.php");
  7.  
  8. $nazwa = addslashes(htmlspecialchars($_POST['nazwa']));
  9. $jednostka = addslashes(htmlspecialchars( $_POST['jednostka']));
  10. $stan = addslashes(htmlspecialchars($_POST['stan']));
  11.  
  12. $q = "INSERT INTO skladniki SET nazwa = '$nazwa', jednostka = '$jednostka', stan = '$stan'";
  13. $r = mysql_query($q);
  14. ?>
  15.  
  16. <?php
  17. if ( isset ($nazwa)) && ( !empty( $nazwa )) //drugą wersje mam taką: if ( isset ($_POST['nazwa']) && ( !empty($_POST['nazwa'] )) {
  18. {
  19. echo("<br>");
  20. echo ("Wprowadzenie danych powiodło się!");
  21. }
  22. ?>
  23.  
  24.  
  25.  
  26. <form method="post" action="dodaj_skladniki.php">
  27. Nazwa: <input type="text" name="nazwa">
  28. Jednostka miary: <input type="text" name="jednostka">
  29. Stan:<input type="text" name="stan">
  30. <input type="submit" value="Dodaj">
  31. </form>
  32. </body>
  33. </html>


Czy w taki sposób mogę stosować funkcję isset żeby sprawdzić czy w formularzu podano nazwę lub czy pole nie jest puste?
Ciągle mam błąd w 20 lini, nie mogę sobie poradzić
thek
Źle robisz jeśli chodzi o kolejność. Od kiedy najpierw wpisujesz do bazy a dopiero potem sprawdzasz? Linie od 11 do 16 powinny być wewnątrz IF, czyli obecna linia 22. No i sprawdzenie czy dodanie się powiodło sprawdzasz poprzez wynik funkcji mysql_query oraz dodatkowo mysql_affected_rows. Czemu? Bo zapytanie może iść do bazy i wszystko być ok, a mimo to się nic nie stanie, gdyż baza może mieć obiekcje przed dodaniem rekordu, choć samo zapytanie jest poprawne. Z tym się człowiek najczęściej spotyka przy update. Ale to już ciekawostka bardziej, bo na obecną chwilę, to sięgnij po jakiś kurs/książkę bo masz poważne braki w podstawach. Poza tym szwankuje Ci nieco logika, bo nie wiesz co gdzie wstawiać.

Inna sprawa, że masz cyrk z nawiasami. W jednym miejscu brakuje w innym niepotrzebny. Używaj więc edytora z podświetlaniem nawiasów bo się pogubisz kiedyś. Nie
if ( isset ($nazwa)) && ( !empty( $nazwa ))
ale
if ( isset ($nazwa) && !empty( $nazwa ) )

Weź używaj też gotowych funkcji. Nie po to masz mysql_real_escape_string by cudować z addslashes i innymi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.