Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Wprowadzenie danych do bazy - problem
Forum PHP.pl > Forum > Przedszkole
sentinell
Witam.

Zbudowałem sobie prostą bazę, szkielet strony już działa, nie działą mi jednak dodawanie rekorów.


Formularz wpisywania danych, ma postać:

  1. <br/>
  2. Wpisz dane nowego promotora poniżej:
  3. <br/>
  4. <br/>
  5. <form action="include/dodanie_promotora.php" method="post">
  6. Imię:<br />
  7. <input type="text" name="imie" /><br />
  8. Nazwisko:<br />
  9. <input type="text" name="nazwisko" /><br />
  10. Telefon:<br />
  11. <input type="text" name="telefon" /><br />
  12. E-mail:<br />
  13. <input type="text" name="adres_email" /><br />
  14. Adres do wysyłki:<br />
  15. <input type="text" name="adres_do_wysylki" /><br />
  16. <input type="submit" value="Dodaj" />
  17. </form>


w katalogu INCLUDE, mam dodanie_promotora.php , a w nim kod:

  1. <?php
  2. // odbieramy dane z formularza
  3. $imie = $_POST['imie'];
  4. $nazwisko = $_POST['nazwisko'];
  5. $telefon = $_POST['telefon'];
  6. $adres_email = $_POST['adres_email'];
  7. $adres_do_wysylki = $_POST['adres_do_wysylki'];
  8. if($imie and $nazwisko and $telefon and $adres_email and $adres_do_wysylki ) {
  9. // dodajemy rekord do bazy
  10. $ins = @mysql_query("INSERT INTO promotorzy SET imie='$imie', nazwisko='$nazwisko', telefon='$telefon', adres_email='$adres_email', adres_do_wysylki='$adres_do_wysylki'");
  11. if($ins) echo "Rekord został dodany poprawnie";
  12. else echo "Błąd nie udało się dodać nowego rekordu";
  13. }
  14. ?>



Baza danych ma postać:

1 id_promotora int(4) AUTO_INCREMENT
2 imie varchar(15) utf8_polish_ci
3 nazwisko varchar(30) utf8_polish_ci
4 telefon int(14)
5 adres_email varchar(40)
6 adres_do_wysylki varchar(100)


Co jest nie tak:
1.) wywala "Błąd nie udało się dodać nowego rekordu" (połączenie z bazą danych jest przy samym wejściu na stronę)
2.) jak zrobić, aby informacja o "Błąd nie udało się dodać nowego rekordu" była w tym samym oknie, a nie na nowej stronie? (plik php mam w innym folderze)
Raito
Pierwszy błąd jaki zauważyłem to: <form action="include/dodanie_promotora.php" method="post">, a odbierasz w dodaj_promotora.php.
Boshi
  1. $ins = @mysql_query("INSERT INTO promotorzy SET imie='$imie', nazwisko='$nazwisko', telefon='$telefon', adres_email='$adres_email', adres_do_wysylki='$adres_do_wysylki'");


co to jest to SET, gdzie masz Values? ... Chyba pomyliłeś Update z Insertem...
sentinell
Zdaje sobie sprawę, że jest SET, ale w dokumentacji MYSQL jest, że tak można zastosować

  1. https://dev.mysql.com/doc/refman/5.6/en/insert.html


Tam w dodawanie promotora, to literówka przy pisaniu na forum, oczywiście jest poprawnie.

Cytat(Raito @ 14.02.2015, 11:42:47 ) *
Pierwszy błąd jaki zauważyłem to: <form action="include/dodanie_promotora.php" method="post">, a odbierasz w dodaj_promotora.php.


Literówka przy pisaniu na forum, jest tak samo, dzięki za zwrócenie uwagi.
bartek4175
  1. $ins = @mysql_query("INSERT INTO `promotorzy` ( `imie` , `nazwisko` , `telefon`, `adres_email`, `adres_do_wysylki`) VALUES ('$imie', '$nazwisko', '$telefon', '$adres_email', '$adres_do_wysylki')") or die(mysql_error());

sprawdź czy tak będzie działac
Boshi
Tyle, że nikt tak nie pisze, jak spotkasz gdzieś kod taki jak twój to bedzie cud.

  1. INSERT INTO table_name (column1,column2,column3,...)
  2. VALUES (value1,value2,value3,...);


Po drugie sprawdź var_dump($_POST) co tutaj siedzi.
sentinell
A jeszcze pytanie, jak zrobić, aby po nacisnieciu przycisku nie wchodził do innego pliku i żebym nie widział białą stronę, tylko ten sam formularz, ale z napisem pod nim

np..... "INFORMACJE DODANE"
Boshi
Jakiego pliku ma nie wchodzić, jaki przycisk, jaka jest jego funkcja?
sentinell
Mam formularz , na nim przycisk WYŚLIJ (zapisz do tabeli), naciskam i wywoluje plik PHP w katalogu INCLUDE, dodanie_promotora.php (dodaje dane), a wynikiem tego, jest oczywiście dopisanie, ale jest biała strona.
Chciałbym, aby jednak informacja była w tym samym oknie, na formularzu, a nie otwierało tego pliku i tam zostawało. (wszystkie instrukcje w moim 1 poście)
Boshi
Nie możesz mieć białej strony, powinieneś dostać komunikat dodano lub wystąpił błąd.

pokaż var_dump($_POST)

i zastosuj się do tego

Temat: Jak poprawnie zadac pytanie
sentinell
Cytat(Boshi @ 14.02.2015, 13:13:27 ) *
Nie możesz mieć białej strony, powinieneś dostać komunikat dodano lub wystąpił błąd.

pokaż var_dump($_POST)

i zastosuj się do tego

Temat: Jak poprawnie zadac pytanie


tylko gdzie wstawić var_dump($_POST)
?


Chciałbym oczywiście powiedzieć, że wszelkie dane się zapisują do tabeli. Po prostu widzę białą stronę skryptu PHP który się wykonał, a chciałbym widzieć ten sam formularz tylko z dopiskiem np. "REKORD DODANY"


Boshi
Po pobraniu danych z formularza wstaw.


Włączyłeś raportowanie błedu tak jak w linku pisze ?

Jeżeli chcesz widzieć formularz to go przeklej po prostu, albo zrób funkcje i wywołąj ją w drugim pliku.
sentinell
Dodałem raportowanie, pare rzeczy pokazał.

Boshi
Dobrze by było wiedzieć co pokazał... facepalmxd.gif
sentinell
Drobne rzeczy poprawiłem i oto co wywaliło: (czyli jest ok)

array(5) { ["imie"]=> string(5) "Jasiu" ["nazwisko"]=> string(5) "BBBBB" ["telefon"]=> string(7) "2212121" ["adres_email"]=> string(10) "wwww@wp.pl" ["adres_do_wysylki"]=> string(9) "sdsdsd 65" } array(5) { ["imie"]=> string(5) "Jasiu" ["nazwisko"]=> string(5) "BBBBB" ["telefon"]=> string(7) "2212121" ["adres_email"]=> string(10) "wwww@wp.pl" ["adres_do_wysylki"]=> string(9) "sdsdsd 65" }

Oczywiście zapisane do bazy.
Po prostu widzę białą stronę skryptu PHP który się wykonał, a chciałbym widzieć ten sam formularz tylko z dopiskiem np. "REKORD DODANY"
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.