01/10/2018, 09:55

Gán dữ liệu từ thẻ Select vào Mysql

Chào các bạn, mình viết 1 form lấy ngày tháng năm sinh khi đăng ký thành viên, các thẻ Ngày tháng năm mình dùng vòng lặp for để viết nhưng sau đó insert vào Mysql lại không được, code:

         <select  name="birthday">
                            <option value="">Ngày</option>
                             <?php for($i=1;$i<=31;$i++){?> 
                             <option value=”<?php echo $i;?>”><?php echo $i;?></option>
                             <?php }?>
                            </select>
                            <select style="height: 30px; width: 80px;" name="birthday">
                             <option value="">Tháng</option>
                             <?php for($i=1;$i<=12;$i++){?> 
                             <option value=”<?php echo $i;?>”><?php echo $i;?></option>
                             <?php }?>
                            </select>
                            <select style="height: 30px; width: 60px;" name="birthday">
                             <option value="">Năm</option>
                             <?php for($i=1920;$i<=2017;$i++){?> 
                             <option value=”<?php echo $i;?>”><?php echo $i;?></option>
                             <?php }?>
                            </select>

Mình dùng phương thức $_POST[’'birthday"] nhưng mãi không nạp ngày tháng năm vào được database, bạn nào có kinh nghiệm chỉ giáo giúp. Tk!

Dark.Hades viết 12:00 ngày 01/10/2018

Bạn quăng đoạn PHP xử lí lên đây nữa thì mới giúp nổi

Nguyen Duong viết 12:10 ngày 01/10/2018

Code xử lý:

$connect = mysqli_connect($servername, $username, $password, $dbname);
   mysqli_set_charset($connect, "utf8");
if (!$connect) {
    die("Lỗi kết nối :" . mysqli_connect_error());
            exit();
   }

if ($_SERVER["REQUEST_METHOD"]== "POST"){
	
    $sql = "INSERT INTO quanlythanhvien (firstname, lastname, email, password, gender, birthday)
            VALUES ('".$_POST["firstname"]."', '".$_POST["lastname"]."', '".$_POST["email"]."','".$_POST["password"]."', '".$_POST["gender"]."', '".$_POST["birthday"]."')";
          mysqli_query($connect, $sql);
    }
Ice Tea viết 11:56 ngày 01/10/2018

Paste code lên thì cũng format lại tí nhé, cho dễ đọc.
Khi viết php trong html thì nên dùng alternative syntax cho dễ đọc. VD:

<?php for ($i = 1; $i <= 31; $i++) : ?> 
    <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php endfor; ?>

Về phần xử lý, bạn xem lại vài chỗ nhé:

  1. Bạn để 3 ô select tên giống nhau nên nó lấy 1 giá trị cuối là Năm thôi: <select name="birthday">. Bạn để 3 cái name khác nhau sau đó trong PHP thì gộp lại, cách tốt hơn là dùng date picker.
  2. Code chưa validate dữ liệu, không dùng prepared statement => sql injection
Bài liên quan
0