Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]formularz z kilkoma tabelami mysql
Forum PHP.pl > Forum > Przedszkole
olszam
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>
Necsord
  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.
olszam
zrobiłem jak pisałeś lecz nadal nic
Necsord
  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.
olszam
hmm no tak raczej powinno być, a to źle jest?
Necsord
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.
olszam
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?
Necsord
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.
olszam
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
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.