
signup.php
PHP
1<?php 2 session_start(); 3 $name=$email=$username=$password=''; 4 if (isset($_SESSION['users'])){ 5 $name=$_SESSION['users']['name']; 6 $email=$_SESSION['users']['email']; 7 $username=$_SESSION['users']['username']; 8 $password=$_SESSION['users']['password']; 9 } 10 $pdo=new PDO('mysql:host=localhost;dbname=admin;charset=utf8','root'); 11 echo '<form class="singup" action="signup-out.php" method="post">'; 12 echo '<p>名前</p>'; 13 echo '<input type="text" name="name" value="'.$name.'"><br>'; 14 echo '<p>ユーザー名</p>'; 15 echo '<input type="text" name="username" value="'.$username.'"><br>'; 16 echo '<p>メールアドレス</p>'; 17 echo '<input type="text" name="email" value="'.$email.'"><br>'; 18 echo '<p>パスワード</p>'; 19 echo '<input type="password" name="password" value="'.$password.'"><br>'; 20 foreach ($pdo->query('select * from college') as $row) { 21 echo '<p>学校名</p>'; 22 echo '<select name="college">'; 23 echo '<option value="0">学校名を選択してください</option>'; 24 echo '<option value="'.$row['college_id'].'">'.$row['name'].'</option>'; 25 echo '</select>'; 26 } 27 echo '<br>'; 28 echo '<input type="submit" value="SingUp">'; 29 echo '</form>'; 30 ?>
echo '<select name="college">'; echo '<option value="0">学校名を選択してください</option>'; //ここでは、データベースのcollegeから大学名を取り出しています。// echo '<option value="'.$row['college_id'].'">'.$row['name'].'</option>'; echo '</select>';
Database
college table
college_id | name |
---|---|
1 | ○○○○○○○○大学 |
2 | ○○○○○○○○大学 |
3 | ○○○○○○○○大学 |
4 | ○○○○○○○○大学 |
```ここに言語を入力 |
Create table college( college_id int auto_increment primary key, name varchar(100) not null );
**signup-out.php** ```PHP session_start(); $pdo=new PDO('mysql:host=localhost;dbname=admin;charset=utf8','root'); if (isset($_SESSION['users'])){ $user_id=$_SESSION['users']['user_id']; $sql=$pdo->prepare('select * from users where user_id!=? and username=?'); $sql->execute([$user_id,$_REQUEST['username']]); }else{ $sql=$pdo->prepare('select * from users where username=?'); $sql->execute([$_REQUEST['username']]); } if (empty($sql->fetchAll())) { if (isset($_SESSION['users'])){ $sql=$pdo->prepare('update users set name=?, email=?, username=?, password=? college_name=? where user_id=?'); $sql->execute([ $_REQUEST['name'], $_REQUEST['email'], $_REQUEST['username'],$_REQUEST['password'],$_REQUEST['college'], $user_id]); $_SESSION['users']=[ 'user_id'=>$user_id, 'name'=>$_REQUEST['name'], 'email'=>$_REQUEST['email'],'username'=>$_REQUEST['username'], 'password'=>$_REQUEST['password'],'college_name'=>$_REQUEST['college'] ]; echo '<p>アカウントを更新しました。</p>'; }else { $sql=$pdo->prepare('insert into users valuse(null,?,?,?,?,?)'); $sql->execute([ $_REQUEST['name'],$_REQUEST['email'],$_REQUEST['username'], //ここの$row['college_id'],$row['name']で、signup.phpの学校名をデータベースに保存したいのですが、その方法が分かりません。// $_REQUEST['password'],$row['college_id'],$row['name']]); echo '<p>アカウントを登録しました。</p>'; } }else { echo '<p>ログイン名がすでに使われていますので、変更してください。</p>'; } ?>
Database
users table
user_id|name|username|email|password|college_id|college_name|
|:--|:--:|--:|
|1|admin|admin|admin@gamil.com|*******|1|○○○○○○○○大学|
Create table users ( user_id int auto_increment primary key, name varchar(50) not null, username varchar(30) not null unique, email varchar(35) not null, password varchar(50) not null, college_id int not null, college_name text not null );
という形で、保存をしたいのですが、その方法が分かりません。
###したいこと
・新規登録の際に、大学名と大学idをユーザーテーブルに保存をしたい。
どうぞご教授の方よろしくお願いします。





回答1件
あなたの回答
tips
プレビュー