Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] wielokrotny wybór
Forum PHP.pl > Forum > Przedszkole
aNDRZEjUu
Hej,

Tworzę formularz do rejestracji użytkowników.
Jedną z opcji jest wybór hobby, ma być możliwość wyboru kilku hobby i zapisu ich do bazy danych.
Niestety zapisuje mi się tylko ostatni wybór.

Potrzebuję pomocy aby dodać możliwość zapisu kilku hobby do bazy.

A oto fragment kodu:
  1. Zainteresowania
  2. <p></p>
  3. <input type="checkbox" name="interest" value="sport" checked/> Sport
  4. <p></p>
  5. <input type="checkbox" name="interest" value="kino" /> Kino
  6. <p></p>
  7. <input type="checkbox" name="interest" value="zakupy" /> Zakupy
  8. <p></p>
  9. <input type="checkbox" name="interest" value="ksiazki" /> Książki
  10. <p></p>
  11. <input type="checkbox" name="interest" value="rodzina" /> Rodzina



  1. <?php
  2. require('db.php');
  3. if (isset($_REQUEST['username'])) {
  4. $username = stripslashes($_REQUEST['username']);
  5. //escapes special characters in a string
  6. $username = mysqli_real_escape_string($con, $username);
  7. $email = stripslashes($_REQUEST['email']);
  8. $email = mysqli_real_escape_string($con, $email);
  9. $password = stripslashes($_REQUEST['password']);
  10. $password = mysqli_real_escape_string($con, $password);
  11. $name = stripslashes($_REQUEST['name']);
  12. $name = mysqli_real_escape_string($con, $name);
  13. $surename = stripslashes($_REQUEST['surename']);
  14. $surename = mysqli_real_escape_string($con, $surename);
  15. $address = stripslashes($_REQUEST['address']);
  16. $address = mysqli_real_escape_string($con, $address);
  17. $school = stripslashes($_REQUEST['school']);
  18. $school = mysqli_real_escape_string($con, $school);
  19. $interest = stripslashes($_REQUEST['interest']);
  20. $interest = mysqli_real_escape_string($con, $interest);
  21. $create_datetime = date("Y-m-d H:i:s");
  22. $query = "INSERT into `users` (username, password, email, create_datetime, name, surename, address, school, interest)
  23. VALUES ('$username', '" . md5($password) . "', '$email', '$create_datetime', '$name', '$surename', '$address', '$school', '$interest')";
  24. $result = mysqli_query($con, $query);
viking
name="interest[]", w php będzie to tablica, zabezpiecz też inserta https://www.php.net/manual/en/mysqli.prepare.php
aNDRZEjUu
Poprawiłem w ten sposób:

  1. Zainteresowania
  2. <p></p>
  3. <input type="checkbox" name="interest[]" value="sport" checked/> Sport
  4. <p></p>
  5. <input type="checkbox" name="interest[]" value="kino" /> Kino
  6. <p></p>
  7. <input type="checkbox" name="interest[]" value="zakupy" /> Zakupy
  8. <p></p>
  9. <input type="checkbox" name="interest[]" value="ksiazki" /> Książki
  10. <p></p>
  11. <input type="checkbox" name="interest[]" value="rodzina" /> Rodzina


Lecz po wypełnieniu formularza na stronie mam taki błąd:

  1. Fatal error: Uncaught TypeError: stripslashes(): Argument #1 ($string) must be of type string, array given in C:\xampp\htdocs\Projekt_1\registration.php:29 Stack trace: #0 C:\xampp\htdocs\Projekt_1\registration.php(29): stripslashes(Array) #1 {main} thrown in C:\xampp\htdocs\Projekt_1\registration.php on line 29


To jest moja 29 linia:
  1. $interest = stripslashes($_REQUEST['interest']);


nospor
Przeciez ci powiedziano ze teraz $_REQUEST['interest'] bedzie tablica. Patrzyles w ogole co tam dostajesz?

print_r($_REQUEST['interest']);
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.