Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]formularz z kilkoma tabelami mysql
olszam
post 25.11.2011, 00:08:28
Post #1





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

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


Próbuje właśnie zrobić formularz który będzie dodawał do tabeli w mysql długość skoków, dane zawodnika(id),dane trenera(id) i dane zawodów (id). Wiem na pewno że długości skoków na pewno mi doda ale nie wiem czemu nie chce mi dodać id zawodnika, id trenera i id danych zawodow. W textboxie mi zadziała to z tymi id ale chce mieć to w combobox.
  1. <html>
  2. <form action="skrypt4.php" method="post">
  3. skok pierwszy:<br />
  4. <input type="text" name="skok1" /><br />
  5. skok drugi:<br />
  6. <input type="text" name="skok2" /><br />
  7. skok trzeci:<br />
  8. <input type="text" name="skok3" /><br />
  9. zawodnik:<br />
  10. <select name="idzawodnik">
  11. <?php
  12. $connection = mysql_connect('localhost', 'root', 'root');
  13. $db = mysql_select_db('olszam', $connection);
  14. ?>
  15. <?php
  16.  
  17. $sql2 = "SELECT zawodnik.idzawodnik FROM zawodnik";
  18. $rezultat1 = mysql_query($sql2,$connection);
  19. while ($Wiersz1 = mysql_fetch_array($rezultat1))
  20. {
  21. echo '<option>'.$Wiersz1['idzawodnik'].'</option>';
  22. }
  23.  
  24. ?>
  25. </select><br />
  26. trener:<br />
  27. <select name="idtrener">
  28. <?php
  29. $sql3 = "Select trener.idtrener From trener";
  30. $rezultat2 = mysql_query($sql3,$connection);
  31. while ($Wiersz2 = mysql_fetch_array($rezultat2))
  32. {
  33. echo '<option>'.$Wiersz2['idtrener'].'</option>';
  34. }
  35.  
  36. ?>
  37. </select><br />
  38. danezawody:<br />
  39. <select name="iddanezawody">
  40. <?php
  41. $sql4 = "Select danezawody.iddanezawody From danezawody";
  42. $rezultat3 = mysql_query($sql4,$connection);
  43. while ($Wiersz3 = mysql_fetch_array($rezultat3))
  44. {
  45. echo '<option>'.$Wiersz3['iddanezawody'].'</option>';
  46. }
  47.  
  48. ?>
  49. </select><br />
  50. <input type="submit" value="dodaj" />
  51. </form>
  52. <?php
  53.  
  54. $skok1 = isset($_POST['skok1']);
  55. $skok2 = isset($_POST['skok2']);
  56. $skok3 = isset($_POST['skok3']);
  57. $zawodnik = isset($_POST['idzawodnik']);
  58. $trener = isset($_POST['idtrener']);
  59. $danezawody = isset($_POST['iddanezawody']);
  60.  
  61. if($skok1 && $skok2 && $skok3 && $zawodnik && $trener && $danezawody)
  62. {
  63.  
  64.  
  65. $sql1="INSERT INTO zawody SET skok1='$skok1', skok2='$skok2', skok3='$skok3', idzawodnik='$zawodnik', idtrener='$trener', iddanezawody='$danezawody'";
  66.  
  67. $ins = mysql_query($sql1,$connection);
  68.  
  69. if($ins)
  70. {
  71. echo "Rekord został dodany poprawnie";
  72. }
  73. else {
  74. echo "Błąd nie udało się dodać nowego rekordu";
  75. }
  76.  
  77. mysql_close($connection);
  78. }
  79.  
  80. ?>
  81.  
  82. </html>


Ten post edytował olszam 25.11.2011, 00:10:00
Go to the top of the page
+Quote Post
Necsord
post 25.11.2011, 00:14:53
Post #2





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

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


  1. echo '<option>'.$Wiersz1['idzawodnik'].'</option>';

Na pierwszy rzut oka brakuje tobie atrybutu value w option. Domyślam się, że to powinno być u ciebie coś w stylu:
  1. echo '<option value='.$Wiersz1['idzawodnik'].'>'.$Wiersz1['imie_zawodnika'].'</option>';

Adekwatnie popraw pozostałe selektory. W $_POST dostaniesz tylko wartość parametru value.

Ten post edytował Necsord 25.11.2011, 00:17:12
Go to the top of the page
+Quote Post
olszam
post 25.11.2011, 00:31:24
Post #3





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

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


zrobiłem jak pisałeś lecz nadal nic
Go to the top of the page
+Quote Post
Necsord
post 25.11.2011, 01:00:51
Post #4





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

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


  1. $skok1 = isset($_POST['skok1']);
  2. $skok2 = isset($_POST['skok2']);
  3. $skok3 = isset($_POST['skok3']);
  4. $zawodnik = isset($_POST['idzawodnik']);
  5. $trener = isset($_POST['idtrener']);
  6. $danezawody = isset($_POST['iddanezawody']);

  1. $sql1="INSERT INTO zawody SET skok1='$skok1', skok2='$skok2', skok3='$skok3', idzawodnik='$zawodnik', idtrener='$trener', iddanezawody='$danezawody'";


Przeoczylem, przypisujesz do tych zmiennych wartość true lub false zamiast id tych osób, a nastepnie probujesz to zapisać w bazie.
Go to the top of the page
+Quote Post
olszam
post 25.11.2011, 01:08:23
Post #5





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

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


hmm no tak raczej powinno być, a to źle jest?
Go to the top of the page
+Quote Post
Necsord
post 25.11.2011, 01:13:57
Post #6





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

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


W twoim kodzie forumarz przejdzie tylko w wypadku kiedy wszystkie wartosci beda wypełnione czyli true ( czyli 1 ) i dostaniesz za każdym razem zapytanie:
  1. 'INSERT INTO zawody SET skok1='1', skok2='1', skok3='1', idzawodnik='1', idtrener='1', iddanezawody='1'


Jeżeli mimo to ciągle nie będzie działało mozesz zrobić var_dump($_POST)'a po $danezawody = isset($_POST['iddanezawody']); i zobaczyć co dostajesz. Może formularz ciągle źle masz.
Go to the top of the page
+Quote Post
olszam
post 25.11.2011, 01:26:49
Post #7





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

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


jak powypełniam pola, pozaznaczam i kliknę dodaj to wszystko pisze "boolean true" we wszystkich ale mimo to nie dodaje mi nic. może tam gdzie combo box jest to mam coś jeszcze źle?

Ten post edytował olszam 25.11.2011, 01:30:23
Go to the top of the page
+Quote Post
Necsord
post 25.11.2011, 01:34:41
Post #8





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

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


isset
Opisałem powyżej czemu masz wartości bolean true po przypisaniu wartości.

Za:
  1. $sql1="INSERT INTO zawody SET skok1='$skok1', skok2='$skok2', skok3='$skok3', idzawodnik='$zawodnik', idtrener='$trener', iddanezawody='$danezawody'";

zrób var_dump($sql1), zapytanie wklej do phpmyadmin'a i przekonaj się o efektach.
Go to the top of the page
+Quote Post
olszam
post 25.11.2011, 01:40:17
Post #9





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

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


Kod
if(isset($_POST['dodaj'])){
    $skok1 = $_POST['skok1'];
    $skok2 = $_POST['skok2'];
    $skok3 = $_POST['skok3'];
    $zawodnik = $_POST['idzawodnik'];
    $trener = $_POST['idtrener'];
    $danezawody = $_POST['iddanezawody'];
}

coś takiego musiałem zrobić i działa jak należy zamykam temat

Ten post edytował olszam 25.11.2011, 19:47:25
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: 16.06.2025 - 20:19