Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Dodanei rekordu do bazy danych + lista rozwijana, Dodawanie rekordu do bazy danych (pole formularza + lista rozwijana)
-Kosaa-
post 16.07.2012, 20:10:28
Post #1





Goście







Witam dopiero zaczynam przygode z PHP dlatego prosze o pomoc, sam nie potrafie znalezc bledu... z góry przepraszam za bałagan wizualny wink.gif

Jak widnieje w temacie mam baze danych w MySQL i chcialbym dodac do tabeli Zawodnik, łączenie z baza działa samo zapytanie INSERT wpisane w PHPMyAdmin takze, ale podczas gdy naciskam przycisk "Dodaj" to odświeża mi strone czysci dane, nie wyswetla ani komunikatu o dodaniu zawodnika ani o błedzie np nie podanie nazwiska albo podaniu juz istniejacego, tak jakby wogole tego nie wykonywalo. W bazie w tez nie zaszły żadne zmiany. Oto mój kod

  1. require('conn.php');
  2.  
  3. if (isset($_POST['Preferowana_noga']) and isset($_POST['kontrakt']) and isset($_POST['Pozycja']) and isset($_POST['Klub'])
  4. and isset($_POST['imie']) and isset($_POST['Nazwisko']) and isset($_POST['NUMER_KOSZULKI']) and isset($_POST['NARODOWOSC'])
  5. and isset($_POST['WARTOSC']) and isset($_POST['WYCHOWANEK']) and isset($_POST['WAGA']) and isset($_POST['WZROST'])
  6. and isset($_POST['TYGODNIOWY_ZAROBKI']))
  7.  
  8. {
  9.  
  10. $Preferowana_noga = $_POST['Preferowana_noga'];
  11. $kontrakt = $_POST['kontrakt'];
  12. $Pozycja = $_POST['Pozycja'];
  13. $Klub = $_POST['Klub'];
  14. $imie = $_POST['imie'];
  15. $Nazwisko = $_POST['Nazwisko'];
  16. $NUMER_KOSZULKI = $_POST['NUMER_KOSZULKI'];
  17. $NARODOWOSC = $_POST['NARODOWOSC'];
  18. $WARTOSC = $_POST['WARTOSC'];
  19. $WYCHOWANEK = $_POST['WYCHOWANEK'];
  20. $WAGA = $_POST['WAGA'];
  21. $WZROST = $_POST['WZROST'];
  22. $TYGODNIOWY_ZAROBKI = $_POST['TYGODNIOWY_ZAROBKI'];
  23.  
  24. if ($imie!="")
  25.  
  26. {
  27.  
  28.  
  29. $ile =mysql_query("SELECT * FROM `pilka`.`zawodnik` WHERE imie = '$imie' and nazwisko= '$Nazwisko' ");
  30.  
  31. $ile = mysql_num_rows($ile);
  32.  
  33. if ($ile==0) {
  34.  
  35. $zapytanie="INSERT INTO `pilka`.`zawodnik` (`ID_ZAWODNIK`, `ID_PREFEROWANA_NOGA`, `ID_KONTRAKT`,
  36. `ID_POZYCJA`, `ID_KLUB`, `IMIE`, `NAZWISKO`, `NUMER_KOSZULKI`, `NARODOWOSC`, `WARTOSC`, `WYCHOWANEK`,
  37. `WAGA`, `WZROST`, `TYGODNIOWY_ZAROBKI`) VALUES (NULL, '$ID_PREFEROWANA_NOGA', '$ID_KONTRAKT', '$ID_POZYCJA',
  38. '$ID_KLUB', '$IMIE', '$NAZWISKO', '$NUMER_KOSZULKI',
  39. '$NARODOWOSC', '$WARTOSC', '$WYCHOWANEK', '$WAGA', '$WZROST', '$TYGODNIOWY_ZAROBKI')";
  40.  
  41. mysql_query($zapytanie) or die("Wystąpił błąd" );
  42.  
  43.  
  44.  
  45. echo('Zawodnik '.$imie.' '.$Nazwisko.' zostal dodany');
  46. echo" Za chwile zostaniesz, automatycznie przeniesiony na stronę edycji zawodników ";
  47. header("Refresh:5; Zawodnicy2.php");
  48.  
  49. }
  50.  
  51. else
  52.  
  53. {
  54.  
  55. echo("Zawodnik o takim imieniu juz istnieje. Kliknij wstecz aby dodac ponownie");
  56.  
  57. }
  58.  
  59. }
  60. else
  61. {
  62. echo ('Podales niepełne dane. Kliknij wstecz aby sprobowac ponownie.');
  63. }
  64.  
  65. }
  66.  
  67. else{
  68.  
  69. ?>
  70.  
  71.  
  72. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  73. <html xmlns="http://www.w3.org/1999/xhtml">
  74. <head>
  75. <fieldset>
  76. <meta http-equiv="Thoma" content="text/html; charset=iso-8859-2" />
  77. <meta http-equiv="reply-to" content="Adres_e-mail" />
  78. <meta name="generator" content="WebSite PRO 4.3" />
  79. <meta name="author" content="Kosaa" />
  80. <meta name="description" content="Manager" />
  81. <title>Manager </title>
  82. <link rel="Stylesheet" type="text/css" href="style/style.css" />
  83.  
  84. <style type="text/css">
  85.  
  86. BODY { background-color: darkgreen; }
  87. .style4 {font-size: 12pt}
  88.  
  89. </style>
  90.  
  91.  
  92. </head>
  93. <body>
  94. <center>
  95. <table width="1041" border="0" cellspacing="0" cellpadding="0">
  96.  
  97. <tr>
  98. <td height="200" colspan="2"><img src="grafika/ttelko.jpg" width="1240" height="200" /></td>
  99. </tr>
  100. </table>
  101.  
  102.  
  103.  
  104. <form action="dodawanieZawodnika.php" method="post">
  105.  
  106. <strong>Kontrakt</strong>
  107. <select name="Kontrakt">
  108. <?php
  109. $zapytanie1 = "SELECT `RODZAJ` FROM `pilka`.`kontrakt`";
  110. $idzapytania1 = mysql_query($zapytanie1);
  111. while ($wiersz1 = mysql_fetch_row($idzapytania1))
  112. echo '<option>('.$wiersz1[0].') '.$wiersz1[1].'</option>';
  113. ?>
  114. </select>
  115. <br />
  116.  
  117. <strong>Pozycja</strong>
  118. <select name="Pozycja">
  119. <?php
  120. $zapytanie2 = "SELECT `PREFEROWANA_POZYCJA` FROM `pilka`.`pozycja`";
  121. $idzapytania2 = mysql_query($zapytanie2);
  122. while ($wiersz2 = mysql_fetch_row($idzapytania2))
  123. echo '<option>('.$wiersz2[0].') '.$wiersz2[1].'</option>';
  124. ?>
  125. </select>
  126. <br />
  127.  
  128. <strong>Klub:</strong><input name="Klub" type="text" value="" /><br/>
  129.  
  130. <strong>Imie:</strong><input name="imie" type="text" value="" /><br/>
  131.  
  132. <strong>Nazwisko:</strong><input name="Nazwisko" type="text" value="" /><br/>
  133.  
  134. <strong>Numer koszulki:</strong><input name="NUMER_KOSZULKI" type="text" value="" /><br/>
  135.  
  136. <strong>Narodowość:</strong><input name="NARODOWOSC" type="text" value="" /><br/>
  137.  
  138. <strong>Wartość:</strong><input name="WARTOSC" type="text" value="" /><br/>
  139.  
  140. <strong>Wychowanek:</strong><input name="WYCHOWANEK" type="text" value="" /><br/>
  141.  
  142. <strong>Waga:</strong><input name="WAGA" type="text" value="" /><br/>
  143.  
  144. <strong>Wzrost:</strong><input name="WZROST" type="text" value="" /><br/>
  145.  
  146. <strong>Tygodniowe zarobki:</strong><input name="TYGODNIOWY_ZAROBKI" type="text" value="" /><br/>
  147.  
  148. <div>
  149. <TD><BR><input type="RESET" name="Reset" value="Wyczyść"/></TD>
  150. <TD><BR><input type="SUBMIT" name="Submit" value="Dodaj"/></TD>
  151. </div>
  152.  
  153.  
  154. </form>
  155.  
  156.  
  157. <?php
  158.  
  159. }
  160.  
  161.  
  162.  
  163. ?>
  164.  
  165. <?php
  166. include('include\stopka.php');
  167. ?>


Najlepsze jest to, ze mam juz dodawanie klubów tylko, ze tam nie mam listy rozwijanej tylko same pola do wpisywania i tamta strona działa mi poprawnie wiec tym bardziej nie rozumiem gdzie sie pomylilem.

Dziekuje za pomoc
Go to the top of the page
+Quote Post
-Kosaa-
post 16.07.2012, 21:12:17
Post #2





Goście







Przez te ostatnie pare minut zrobiłem pewną rzecz, do tej mojej stronki gdzie mi wszystko ladnie smigało dodałem jedna warotsc (ktora wczesniej była null) i chcialem ja dodać za pomoca listy rozwijanej i okazało się, ze po jej wprowadzeniu równiez mi tylko odsieza strone i nic nie dodaje (tak jak w opisanym problemie), tak wiec problemem na 99% sa te listy, moze troszke pomoglem tym co beda chcieli pomoc mi smile.gif

mam dwie wersje wyswietlania tych list nie wiem czy obie sa zle czy jaki gwint
1 wersja
  1. <select name="Kontrakt">
  2. <?php
  3. $zapytanie1 = "SELECT * FROM `pilka`.`kontrakt`";
  4. $idzapytania1 = mysql_query($zapytanie1);
  5. while ($wiersz1 = mysql_fetch_array($idzapytania1))
  6. echo "<option value=\"$wiersz1[ID_KONTRAKT]\">$wiersz1[RODZAJ]</option>\n";
  7. ?>
  8. </select>
  9. <br />


2 wersja
  1. <strong>Pozycja</strong>
  2. <select name="Pozycja">
  3. <?php
  4. $zapytanie2 = "SELECT `PREFEROWANA_POZYCJA` FROM `pilka`.`pozycja`";
  5. $idzapytania2 = mysql_query($zapytanie2);
  6. while ($wiersz2 = mysql_fetch_row($idzapytania2))
  7. echo '<option>('.$wiersz2[0].') '.$wiersz2[1].'</option>';
  8. ?>
  9. </select>
  10. <br />
Go to the top of the page
+Quote Post
Aqu
post 16.07.2012, 21:39:28
Post #3





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


Dodaj na początku var_dump($_POST) o zobacz co dostajesz.

  1. if (isset($_POST['Preferowana_noga']) and isset($_POST['kontrakt']) and isset($_POST['Pozycja']) and isset($_POST['Klub'])
  2. and isset($_POST['imie']) and isset($_POST['Nazwisko']) and isset($_POST['NUMER_KOSZULKI']) and isset($_POST['NARODOWOSC'])
  3. and isset($_POST['WARTOSC']) and isset($_POST['WYCHOWANEK']) and isset($_POST['WAGA']) and isset($_POST['WZROST'])
  4. and isset($_POST['TYGODNIOWY_ZAROBKI']))
  5.  
  6. // lepiej tak
  7.  
  8. if(isset($_POST['a'], $_POST['b'] itd.))
  9.  


dalej...

  1. $Preferowana_noga = $_POST['Preferowana_noga'];
  2. $kontrakt = $_POST['kontrakt'];
  3. $Pozycja = $_POST['Pozycja'];
  4. $Klub = $_POST['Klub'];
  5. $imie = $_POST['imie'];
  6. $Nazwisko = $_POST['Nazwisko'];
  7. $NUMER_KOSZULKI = $_POST['NUMER_KOSZULKI'];
  8. $NARODOWOSC = $_POST['NARODOWOSC'];
  9. $WARTOSC = $_POST['WARTOSC'];
  10. $WYCHOWANEK = $_POST['WYCHOWANEK'];
  11. $WAGA = $_POST['WAGA'];
  12. $WZROST = $_POST['WZROST'];
  13. $TYGODNIOWY_ZAROBKI = $_POST['TYGODNIOWY_ZAROBKI'];

Dlaczego jedna zmienna zaczyna się duża, druga jest napisana tylko małymi a trzecia tylko dużymi? ;p I po co tu w ogóle?
Go to the top of the page
+Quote Post
-Kosaa-
post 16.07.2012, 22:04:04
Post #4





Goście







Po wpisaniu przykladowych danych var_dump($_POST); wyswietliło mi :
array(12) { ["Kontrakt"]=> string(1) "1" ["Pozycja"]=> string(10) "(bramkarz)" ["Klub"]=> string(11) "Real Madryt" ["imie"]=> string(9) "Cristiano" ["Nazwisko"]=> string(7) "Ronaldo" ["NUMER_KOSZULKI"]=> string(1) "7" ["NARODOWOSC"]=> string(12) "Portugalczyk" ["WARTOSC"]=> string(9) "100000000" ["WYCHOWANEK"]=> string(16) "Sporting Lisbona" ["WAGA"]=> string(2) "88" ["WZROST"]=> string(3) "190" ["TYGODNIOWY_ZAROBKI"]=> string(6) "200000" }

Bez wprowadzenia jakich kolwiek danych var_dump($_POST); wyswietla mi :
array(12) { ["Kontrakt"]=> string(1) "1" ["Pozycja"]=> string(10) "(bramkarz)" ["Klub"]=> string(0) "" ["imie"]=> string(0) "" ["Nazwisko"]=> string(0) "" ["NUMER_KOSZULKI"]=> string(0) "" ["NARODOWOSC"]=> string(0) "" ["WARTOSC"]=> string(0) "" ["WYCHOWANEK"]=> string(0) "" ["WAGA"]=> string(0) "" ["WZROST"]=> string(0) "" ["TYGODNIOWY_ZAROBKI"]=> string(0) "" }

Tak jak pisalem troszke balaganu jest np z tymi wielkosciami liter, jeszcze to poprawie (lecz nie sa one problemem błedów), ale nie za bardzo rozumiem Twoje pytanie "po co tu w ogole" smile.gif mozesz jaśniej ?

faktycznie Twoj sposob wpisywanie jest mega lepszy wink.gif
Go to the top of the page
+Quote Post
Aqu
post 16.07.2012, 22:37:59
Post #5





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


Chodzi mi o to, że to przypisywanie $_POST['x'] do $x jest niepotrzebne. Rozumiem jak używałbyś tego $x kilka razy ale tutaj używasz tych zmiennych tylko raz. wink.gif
isset($_POST['kontrakt']) zamień na isset($_POST['Kontrakt']) i nie wysyłasz $_POST['Preferowana_noga']
Go to the top of the page
+Quote Post
-Kosaa-
post 17.07.2012, 17:44:24
Post #6





Goście







A wiec problem tkwil w takim malym szczegole, ktory sam przez swoj balagan stworzylem. Stronka mi sie juz laduje, ale teraz wyskakuje blad, i jak wpisalem echo($zapytanie) i to co wyswietlilo na stronie wbilem do PHPMyAdmin to wyswietlilo mi to :
#1452 - Cannot add or update a child row: a foreign key constraint fails (`pilka`.`zawodnik`, CONSTRAINT `zawodnik_ibfk_3` FOREIGN KEY (`ID_POZYCJA`) REFERENCES `pozycja` (`ID_POZYCJA`))

a tak wygladał insert
INSERT INTO `pilka`.`zawodnik` (`ID_ZAWODNIK`, `ID_PREFEROWANA_NOGA`, `ID_KONTRAKT`, `ID_POZYCJA`, `ID_KLUB`, `IMIE`, `NAZWISKO`, `NUMER_KOSZULKI`, `NARODOWOSC`, `WARTOSC`, `WYCHOWANEK`, `WAGA`, `WZROST`, `TYGODNIOWY_ZAROBKI`) VALUES (NULL, NULL, '1', '(Napastnik)', 'Real Madryt', 'Cristiano', 'Ronaldo', '7', 'Portugalczyk', '100000000', 'Sporting Lisbona', '88', '190', '200000')

Czy mogłbyś mi jeszcze z tym pomoc, chociaż może samemu uda mi sie dojsc do przyczyny awarii.

Dzieki
Go to the top of the page
+Quote Post
-Kosaa-
post 17.07.2012, 18:11:09
Post #7





Goście







Ok problem rozwiązany, chodzi o to, że jak mam FOREIGN KEY to znaczy, że dane pole odnosi się do istniejącego w innej tabeli. I jeśli tam nie masz nic wpisanego, to nie możesz też dodać do tabeli, która się łączy z nią. Zatem wpierw dodajesz dane do tych tabel, które nie mają pól z FOREIGN KEY, a następnie do tych, w których te pola występują, już z wartościami wpisanymi w te wcześneijsze. A w przypadku zwracania wartosci z lisy musi to byc id (tzn to z czym jest polaczone z tabela do ktorej bedzie dopisaywane) a ja mialem nazwe.

Ale teraz mam inne pytanie
W chwili gdy dodam rekord wyswietla mi sie "Za chwile zostaniesz, automatycznie przeniesiony na stronę edycji zawodników" i po 5 sek przelogowywuje na strone edycji zawodnikow, ale napis ten wyskakuje mi w nowo otwartym oknie ktore jest cale biale i brzydkie, a chcialbym by otworzylo mi sie nowe okienko w ktorym widnieje ta sama wiadomosc i tak samo przelogowywuje na jakas tam strone (oczywiscie po przelogowaniu znika) Czy jest to proste do zrobienia w PHP ?

Go to the top of the page
+Quote Post
Sebapgd
post 20.12.2013, 14:14:49
Post #8





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 17.12.2013

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


Mam listę rozwijaną ale chciałbym utworzyć formularz w tabeli zamowienie:
Produkt : rozwijają się produkty z tabeli"produkty"
Nazwa firmy: rozwijają się nawy firm z tabeli"klient"
i żeby zapisywało do tabeli "zamowienie"

Jak to zrobić na razie udało mi się coś takiego tylko zrobić?

  1. <form action="" method="post">
  2. <select name="zamowienie" onchange="this.form.submit()">
  3. <option value="">Wybierz dział</option>
  4. <option value="nazwa">Nazwa</option>
  5. <option value="produkty">Produkty</option>
  6. <option value="magazyn">Magazyn</option>
  7. </select>
  8. </form>
  9.  
  10. <?php
  11.  
  12. // parametry serwera
  13. $serwer = "127.0.0.1"; // nazwa serwera mysql
  14. $login = "root"; // login do bazy
  15. $haslo = ""; // haslo do bazy
  16. $baza = "sebastian"; // nazwa bazy
  17. $tabela = "zamowienie"; // nazwa tabeli
  18.  
  19. $dzial = $_POST['produkty'];
  20.  
  21. if($dzial) {
  22.  
  23. // łączymy się z bazą danych
  24. if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) {
  25.  
  26. // zapytanie do bazy danych
  27. $wynik = mysql_query("SELECT * FROM zamowienie WHERE produkty='$dzial'")
  28. or die("Błąd w zapytaniu!");
  29.  
  30. }
  31. else echo "Nie mogę połączyć się z bazą danych!";
  32.  
  33. // wyświetlany wyniki zapytania
  34. while($rek = mysql_fetch_array($wynik)) {
  35. echo $rek['nazwisko']."<br />";
  36. }
  37. }


Wszystkie moje pytania usunąłem to jest jedyne;]
Go to the top of the page
+Quote Post
Turson
post 20.12.2013, 18:52:27
Post #9





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat
Mam listę rozwijaną ale chciałbym utworzyć formularz w tabeli zamowienie:
Produkt : rozwijają się produkty z tabeli"produkty"
Nazwa firmy: rozwijają się nawy firm z tabeli"klient"
i żeby zapisywało do tabeli "zamowienie"


Na tej zasadzie
  1. $query = //pobierasz w zapytaniu nazwy produktów+id (najlepiej)
  2. echo '<select name="produkt">
  3. while($produkty = mysql_fetch_assoc($query)){
  4. echo '<option value="'.$produkty['id']">'.$produkty['nazwa'].'</option>';
  5. }
  6. echo '</select>';
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: 7.07.2025 - 00:51