Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySql] Dodawanie rekordów do bazy przez formularz
leewang
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 19.11.2009
Skąd: Chrzanów / Kraków

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


Witam

Przejdę od razu do kodu:

  1. function nowa($nazwa)
  2. {
  3. print(iso("<form method=post action='admin.php?action=dodajkat'><center><table>
  4. <tr><td><div class=text>Nazwa:</td><td><input type=text size=20 name=nazwa></td></tr>
  5. <tr><td></td><td align=right>
  6. <input type=reset value=Wyczyść>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  7. <input type=submit value=Zapisz></td></tr>
  8. <tr><td colspan=2><br><center>
  9. <a href=admin.php?action=glowna>Powrót</a></td></tr></table></form>"));
  10. }
  11.  
  12. $nazwa = $_POST['nazwa'];
  13.  
  14. if($nazwa=='')
  15. nowa($nazwa);
  16. else
  17. {
  18. mysql_query("insert into kategorie (nazwa) values ('$nazwa');") or die(mysql_error());
  19. print(iso("<center><table>
  20. <tr><td><div class=text>Dodano kategorie o nazwie:</td><td><div class=text>$nazwa</td></tr>
  21. <tr><td colspan=2><br><center><a href=admin.php?action=glowna>Powrót</a>
  22. </td></tr></table>"));
  23. }
  24. }
  25. break;


Wpis dodaje się poprawnie, ale za każdym razem na stronie, nad formularzem wyskakuje błąd:

W 12 linii kodu: Undefined index: nazwa chodzi o tą nazwę $_POST['nazwa']; .

Jak usunę ten wpis z 12 linii to wtedy wyskakuje komunikat że nie ma zadeklarowanej zmiennej z 14 linii kodu.

Wychodzi na to że zmienna nazwa jest zadeklarowana w funkcji i poza funkcją nie jest już rozpoznawana. Może da się ją jakoś przenieść na zewnątrz? Zrobić z niej zmienną globalną? albo zmienną chociaż w tym casie (bo cała funkcja dodawania jest w casie)

Jak temu zaradzić? Ktoś ma pomysł?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




  1. $nazwa = isset($_POST['nazwa']) ? $_POST['nazwa'] : '';
Go to the top of the page
+Quote Post
darko
post
Post #3





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


może wytłum

  1. $nazwa = @$_POST['nazwa'];


to
  1. $nazwa = @$_POST['nazwa'];
  2. if($nazwa=='') {//...


powinno być poza funkcją, jako warunkowe jej wywołanie
Go to the top of the page
+Quote Post
leewang
post
Post #4





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 19.11.2009
Skąd: Chrzanów / Kraków

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


Cytat(phpion @ 23.11.2009, 14:33:53 ) *
  1. $nazwa = isset($_POST['nazwa']) ? $_POST['nazwa'] : '';



Działa (IMG:style_emoticons/default/yahoo.gif) Dzięki wielkie + dla Ciebie.

Może zobaczycie do:
http://forum.php.pl/index.php?showtopic=13...t=0#entry683615

Bo nie wiem jak wyjąć zmienną id z kodu. Tzn po kliknięciu na przycisk usuń przy odpowiednim polu zmienna kategoria przyjmuje pewną wartość i nie wiem jak ją wyciągnąć na zewnątrz żeby potem odwołać ją do zapytania mysql do usunięcia rekordu.

Ten post edytował leewang 23.11.2009, 14:40:03
Go to the top of the page
+Quote Post
piotrooo89
post
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




Cytat(darko @ 23.11.2009, 14:34:31 ) *
może wytłum


chłopie podajesz jakieś pół środki... nie jest to zbyt szczęśliwe rozwiązanie....
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 04:22