php - Tinyint 用于 true/false

标签 php mysql

我创建了一个表person有两个tinytint字段来决定一个人的角色。角色是instructorfaculty 。一个人可以是其中之一,也可以是两者兼而有之。我更喜欢使用tinyint,因为我可以设置 1为真且0为假。问题是我怎样才能这样做并将值提交到 mysql 表 personSITE

表格

CREATE TABLE IF NOT EXISTS `person` (
  `person_id` int(11) NOT NULL auto_increment,
  `faculty_role` tinyint(1) NOT NULL,
  `instructor_role` tinyint(1) NOT NULL,
  `person_name` varchar(50) NOT NULL,
  PRIMARY KEY  (`person_id`),
);

HTML

<?php

if(isset($_POST['submit'])){

        //Need help here
}

?>
<form action="test2.php" method="POST">
<b>Select the role for the person</b>
</br>
</br>
Name:<input type="text" name="person_name">
     <input type="checkbox" name="role" value="faculty">faculty
     <input type="checkbox" name="role" value="instructor">instructor<br><br>
Name:<input type="text" name="person_name">
     <input type="checkbox" name="role" value="faculty">faculty
     <input type="checkbox" name="role" value="instructor">instructor<br><br>

<input value="SAVE" name="submit" type="submit">

</form>

最佳答案

首先要做的事情:

  • 您不得使用相同的名称进行输入。另外,当您使用复选框组时,请使用数组。你可能会使用这样的东西:

    Name:<input type="text" name="person_name1">
         <input type="checkbox" name="role1[]" value="faculty">faculty
         <input type="checkbox" name="role1[]" value="instructor">instructor<br><br>
    Name:<input type="text" name="person_name2">
         <input type="checkbox" name="role2[]" value="faculty">faculty
         <input type="checkbox" name="role2[]" value="instructor">instructor<br><br>
    
  • 您需要使用mysqlimysql pdo读/写mysql数据库。这是数据库连接的完成方式。

    $connect = mysqli_connect("HOST","DB_USERNAME","DB_PASSWORD","DB_NAME");
    if (mysqli_connect_errno()) {
        die("Unable to connect to database. Error: ". mysqli_connect_error());
    }
    
  • 您的表字段是tinyint,而您的表单值是字符串。您需要实现逻辑来获取相对 int 值。

    if(isset($_POST['submit'])){
        $person1_role1 = empty($_POST['role1'][0]) ? 0 : 1;
        $person1_role2 = empty($_POST['role1'][1]) ? 0 : 1;
    
        // Do the same for person2
    
        // grab other fields (person_name1, person_name2)
    
        // Query insert statement
    }
    

关于php - Tinyint 用于 true/false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20015666/

相关文章:

php - Laravel 7.x - 将 url 中的参数传递到注册表单

php - 公共(public)交通中的图论

PHP从Assoc数组中获取字符串值并将其转换为字符串进行比较

php - 如何从字符串中删除BB代码?

php - mysql_fetch_array 只运行一次,应该是 6

javascript - 使用 javascript 从共享 iCloud 获取数据

php - joomla 2.5 模块中的图像插入字段

c# - 使用列表从 MySql 数据库检索信息出现异常 "Index was outside the bounds of the array."

mysql - 你如何 JOIN 两个 MySQL 表,其中数据不在另一个表中?

mysql - 如何将 MySQL 变量放入Where子句中