Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapis danych z formularza do bazy mysql
nevar
post 26.03.2006, 23:57:58
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


Jestem raczej początkujący w tym.smile.gif
Jak powinien wyglądać porawnie skrypt, który pobiera tekst z formularza i zapisuje w bazie mysql?

Mój wygląda tak:

  1. <?
  2. include ("baza.php");
  3.  
  4. $pyt = $_POST['pyt'];
  5. $odpa = $_POST['odpa'];
  6. $odpb = $_POST['odpb'];
  7. $odpc = $_POST['odpc'];
  8. $odppraw = $_POST['odppraw'];
  9.  
  10. mysql_connect($mysql_host, $mysql_login, $mysql_haslo);
  11. mysql_select_db($mysql_baza);
  12. $query = mysql_query("INSERT INTO quiz VALUES ('','$pyt', '$odpa', '$odpb','$odpc','$odppraw')");
  13. $result = mysql_query($query);
  14. if (mysql_affected_rows() == 1) {
  15. echo '<p>Dodano do bazy</p>';
  16. }
  17. else
  18. {
  19. echo '<p>Błąd! Spróbuj ponownie</p>';
  20. }
  21.  
  22. <form action="dodpyt.php" method="post">
  23. <table>
  24. <tr>
  25. <td align="right">Pytanie:&nbsp;</td>
  26. <td><textarea name="pyt" rows=5 cols=30 warp=phisical></textarea></td>
  27. </tr>
  28. <tr>
  29. <td align="right">Odpowiedź a:&nbsp;</td>
  30. <td><textarea name="odpa" rows=5 cols=30 warp=phisical></textarea></td>
  31. </tr>
  32. <tr>
  33. <td align="right">Odpowiedź b:&nbsp;</td>
  34. <td><textarea name="odpb" rows=5 cols=30 warp=phisical></textarea></td>
  35. </tr>
  36. <tr>
  37. <td align="right">Odpowiedź c:&nbsp;</td>
  38. <td><textarea name="odpc" rows=5 cols=30 warp=phisical></textarea></td>
  39. </tr>
  40. <tr>
  41. <td align="right">Poprawna odpowiedź to:&nbsp;</td>
  42. <td><input type="text" name="odppraw">&nbsp;- tu wpisz a,b lub c</td>
  43. </tr>
  44. <tr>
  45. <td colspan="2" align="right">
  46. <input type="submit" value="Zapisz" /></td>
  47. </tr>
  48. </table>
  49. </form> ';
  50. ?>


Co powinienem tu zmienić??
Go to the top of the page
+Quote Post
huntercs
post 27.03.2006, 01:53:51
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 6.02.2005

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


niepotrzebnie drukujesz kilogramy htmla jeżeli niema tam nic z php, i sprawdzanie czy dodano do bazy też nie najlepsze
ja bym to zrobił tak:
  1. <?
  2. include ("baza.php");
  3.  
  4. mysql_connect($mysql_host, $mysql_login, $mysql_haslo);
  5. mysql_select_db($mysql_baza);
  6.  
  7. $pyt = $_POST['pyt'];
  8. $odpa = $_POST['odpa'];
  9. $odpb = $_POST['odpb'];
  10. $odpc = $_POST['odpc'];
  11. $odppraw = $_POST['odppraw'];
  12.  
  13. $add = mysql_query("INSERT INTO quiz(pyt, odpa, odpb, odpc, odppraw) VALUES('$pyt', '$odpa', '$odpb','$odpc','$odppraw')");
  14. if ($add) echo '<p>Dodano do bazy</p>';
  15. else { echo mysql_error(); echo '<p>Błąd! Spróbuj ponownie</p>'; }
  16. ?>
  17. <form action="dodpyt.php" method="post">
  18. <table>
  19. <tr>
  20. <td align="right">Pytanie:&nbsp;</td>
  21. <td><textarea name="pyt" rows=5 cols=30 warp=phisical></textarea></td>
  22. </tr>
  23. <tr>
  24. <td align="right">Odpowiedź a:&nbsp;</td>
  25. <td><textarea name="odpa" rows=5 cols=30 warp=phisical></textarea></td>
  26. </tr>
  27. <tr>
  28. <td align="right">Odpowiedź b:&nbsp;</td>
  29. <td><textarea name="odpb" rows=5 cols=30 warp=phisical></textarea></td>
  30. </tr>
  31. <tr>
  32. <td align="right">Odpowiedź c:&nbsp;</td>
  33. <td><textarea name="odpc" rows=5 cols=30 warp=phisical></textarea></td>
  34. </tr>
  35. <tr>
  36. <td align="right">Poprawna odpowiedź to:&nbsp;</td>
  37. <td><input type="text" name="odppraw">&nbsp;- tu wpisz a,b lub c</td>
  38. </tr>
  39. <tr>
  40. <td colspan="2" align="right">
  41. <input type="submit" value="Zapisz" /></td>
  42. </tr>
  43. </table>
  44. </form>


--------------------


Go to the top of the page
+Quote Post
revyag
post 27.03.2006, 10:04:48
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Od razu na starcie dostaniesz warningi o niezainicjalizowanych zmiennych.
Zrób tak:
  1. <?php
  2. if(isset($_POST["submit"])) {
  3. include ("baza.php");
  4. mysql_connect($mysql_host, $mysql_login, $mysql_haslo);
  5. mysql_select_db($mysql_baza);
  6. $pyt = $_POST['pyt'];
  7. $odpa = $_POST['odpa'];
  8. $odpb = $_POST['odpb'];
  9. $odpc = $_POST['odpc'];
  10. $odppraw = $_POST['odppraw'];
  11.  
  12. $add = mysql_query("INSERT INTO quiz(pyt, odpa, odpb, odpc, odppraw) VALUES('$pyt', '$odpa', '$odpb','$odpc','$odppraw')");
  13. if ($add) {
  14. echo '<p>Dodano do bazy</p>';
  15. } else {
  16. echo mysql_error(); echo '<p>Błąd! Spróbuj ponownie</p>';
  17. }
  18. } else {
  19. ?>
  20.  <!--tutaj kod formularza-->
  21.  <input type="submit" name="submit" />
  22. <?php
  23. }
  24. ?>


--------------------
-------------

------
Go to the top of the page
+Quote Post
nevar
post 28.03.2006, 17:07:36
Post #4





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


Dzięki revyag! Działa jak trzeba!! smile.gif
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: 20.06.2025 - 01:27