Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在注册表中选择下拉选项_Php_Mysql - Fatal编程技术网

Php 在注册表中选择下拉选项

Php 在注册表中选择下拉选项,php,mysql,Php,Mysql,我正在创建一个带有下拉选择选项的注册表表单。 登记表格如下: 姓名: 电邮: 密码: 学校:(下拉选项列表) 我已经建立了两个表格,一个叫做“用户”,另一个叫做“学校”。 在我的“用户”表中,列是“id”(int(11)),“email”(varchar(255),“name”(varchar(64))和“school”(varchar(64))。 在我的“schools”表中,列是“id”(int(11))、“users_id”(int(11))和“school_id”(int(11))。我不

我正在创建一个带有下拉选择选项的注册表表单。 登记表格如下:

姓名: 电邮: 密码: 学校:(下拉选项列表) 我已经建立了两个表格,一个叫做“用户”,另一个叫做“学校”。 在我的“用户”表中,列是
“id”(int(11))
“email”(varchar(255)
“name”(varchar(64)
)和“school”(varchar(64))。 在我的“schools”表中,列是“id”(int(11))、“users_id”(int(11))和“school_id”(int(11))。我不确定这个表的设置是否正确,所以请告诉我是否有更好的设置方法。我制作了“school_id”,因为我以后还会有一个搜索系统,用户可以在其中搜索特定学校的人

到目前为止,my register.html的表单部分:

 <form action="register.php" method="post">
    <div class="field">
       <label for="email">Email:</label>
       <input type="email" id="email" value="" autocomplete="on" action="" />
    </div>

    <div class="field">
       <label for="password">Password:</label><br />
       <input type="password" id="password" autocomplete="off" />
    </div>

    <div class="field">
       <label for="name">Name:</label><br />
       <input type="text" id="name" action="" />
    </div>

    <div class="field">
       <label for="school">School:</label>
       <select id="school" size="1">
          <option value="a">Apple School</option>
          <option value="b">Banana School</option>
          <option value="c">Carrot School</option>
       </select>
    </div>    

    <input name="Register" type="submit" id="register" value="" />
 </form>

电邮:
密码:
名称:
学校: 苹果学校 香蕉学校 胡萝卜学校
和my register.php:

<?php
require_once 'core/init.php';

if(Input::exists()) {
   if(Token::check(Input::get('token'))) {

    $validate = new Validate();
    $validation = $validate->check($_POST, array(
        'email' => array(
            'required' => true,
            'min' => 2,
            'max' => 255,
            'unique' => 'users'
        ),
        'password' => array(
            'required' => true,
            'min' => 6
        ),
        'name' => array(
            'required' => true,
            'min' => 2,
            'max' => 50
        ),
//I don't know how to put the school drop down in here)
    ));

    if($validation->passed()) {
        $user = new User();

        $salt = Hash::salt(32);

        try {
            $user->create(array(
                'email' => Input::get('email'),
                'password' => Hash::make(Input::get('password'), $salt),
                'salt' => $salt,
                'name' => Input::get('name'),
                'school' => Input::get('school'),
                'joined' => date('Y-m-d H:i:s'),
            ));

            Session::flash('home', 'You have been registered and can now log in!');
            Redirect::to('index.php'); 

        } catch(Exception $e) {
            die($e->getMessage());
        }

    } else {
        foreach($validation->errors() as $error) {
            echo $error, '<br>';
        }
    }
}
}?>

我认为您应该更改此格式的表格

用户表

“id”(int(11))
“email”(varchar(255)
“name”(varchar(64)
“school\u id”(int(11))

学校表

“id”(int(11))
“school\u id”(int(11))”
“school\u name”(varchar(255))


现在,您可以访问school表,将下拉列表放入代码中。

您遇到的错误是什么?它是否在任何框架上运行?没有任何错误,我想问的是如何将下拉选项列表编码到此代码中我是否应该在school表中使用id的自动增量(就像我为用户所做的那样)对于school\u id?1.是的,你应该使school(id自动递增)。2.如果你想给school分配某个特定的id,那么你可以使用
school\u id
,否则你可以忽略
school\u id
,它显示了“不正确的表定义;只能有一个自动列,并且必须将其定义为键。”"当我尝试自动增加学校id时,我应该怎么做?不,你不需要使其自动增加,你只需要手动填充此值,否则将其删除,并将学校表
id
用作用户表中的学校id。你的意思是将其从用户表中删除吗?但是如果我这样做,注册表中的数据将如何添加到其中?